【发布时间】:2017-12-25 16:08:39
【问题描述】:
我有 2 个字符串,我想在另一个字符串中找到一个字符串的所有位置。 String.find 有效,但不是正则表达式。
sub:(不想)调用
str1:我不能(不想)打电话
str1.find(sub) returns 7 but
[(m.start(0), m.end(0)) for m in re.finditer(sub,str1)] returns empty list
【问题讨论】:
我有 2 个字符串,我想在另一个字符串中找到一个字符串的所有位置。 String.find 有效,但不是正则表达式。
sub:(不想)调用
str1:我不能(不想)打电话
str1.find(sub) returns 7 but
[(m.start(0), m.end(0)) for m in re.finditer(sub,str1)] returns empty list
【问题讨论】:
括号是正则表达式中的元字符(用于捕获组),因此如果要按字面处理,您需要将它们转义:
sub = '\(dont want to\) call in'
或者,您可以使用re.escape,它会自动为您转义元字符:
re.finditer(re.escape('(dont want to) call in'), str1)
【讨论】: