示例:
s = "Thisissometext andthisissometext"
我想把文本分为“是”和“一些”:
["Thisis", "sometext andthisis", "sometext"]
如果我这样做:
re.split("(?<=is)s(?=ome)", s)
--> ['Thisis', 'ometext andthisis', 'ometext']
不,是的
如果我这么做
re.split("(?<=is)(s)(?=ome)", s)
--> ['Thisis', 's', 'ometext andthisis', 's', 'ometext']
如果我这么做
re.split("(?<=is)(?=some)", s)
--> ValueError: split() requires a non-empty pattern match.
如果没有分隔符,如何拆分字符串??你知道吗
这里不是使用
split
,而是一个regex,您可以在re.findall
中使用它来完成您的工作:RegEx Demo
正则表达式分解:
[\w\s]+?
:匹配1+个单词或空格字符(非贪婪的)(?:
:启动一个非捕获组is
:匹配文字is
(?=some)
:后面必须跟some
|
:或$
:它是字符串的结尾)
:结束非捕获组如果您知道文本中不存在的字符,
'@'
这里是一种简单而快速的方法:测试:
您需要较新的^{} module ,它支持空拆分:
注意这里的
(?V1)
,它支持更新的行为。也可以通过标志设置:相关问题 更多 >
编程相关推荐