我正在使用正则表达式将字符串<book name> by <author name>
拆分为书籍和作者姓名。
re.split(r'\bby\b', text, 0, re.I)
但是当书名包含“by”(例如Death by Blackhole by Tyson
=&gt; ['Death', 'by Black...']
)
如何按最后一次搜索模式拆分字符串?
我有预感 - / + ve look-ahead / behind在这里很有用,但目前正在试图构建正确的语法。
答案 0 :(得分:3)
答案 1 :(得分:3)
您可以从拆分中重建:
parts = re.split(r'\bby\b', text, 0, re.I)
book, author = 'by'.join(parts[:-1]), parts[-1]
或者完全匹配:
match = re.match(r'(.*)\bby\b(.*)', text, re.I)
答案 2 :(得分:2)
答案 3 :(得分:1)
你可以试试这个,它会匹配最后一个,在你的例子上测试
by(?!.*by.*)