我有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
答案 0 :(得分:1)
括号是正则表达式中的元字符(用于捕获组),因此如果要对它们进行字面处理,则需要对它们进行转义:
sub = '\(dont want to\) call in'
或者,您可以使用re.escape
,它会自动为您转义元字符:
re.finditer(re.escape('(dont want to) call in'), str1)