分割字符串,包括分隔符,多个匹配项

风向检查

我的绳子是s = "ABC foo bar 123 ABC baz nice 345"分隔符为ABC,因此:

>>> s = "ABC foo bar 123 ABC baz nice 345
>>> output = re.findall(r"(ABC.*)", s)
>>> output
[ABC foo bar 123 ABC baz nice 345]

我要[ABC foo bar 123, ABC baz nice 345]

我究竟做错了什么?

阿努巴瓦

您可以使用正则表达式使用此正则表达式:

>>> import re
>>> s = "ABC foo bar 123 ABC baz nice 345"
>>> print(re.findall(r'\bABC .*?(?=\sABC\s|$)', s))
['ABC foo bar 123', 'ABC baz nice 345']

正则表达式详细信息:

  • \bABC :匹配单词,ABC后跟一个空格
  • .*?:匹配0个或多个任何字符(惰性匹配)
  • (?=\sABC\s|$)肯定的前瞻性断言我们ABC在当前位置之前有空格+ +或行尾有空格

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章