我在Python 3中有一些看起来像这样的代码:
import re
searchChar = string1[0]
re.finditer(searchChar, a_string)
因此,我们的想法是找到字符串中所有字符出现的索引。
问题在于string1
可能是任何内容,所以如果它像string1 = 'cat'
或string1 = 'dog'
一样正常,那么一切都很好。
但如果它以正则表达式控制字符开头,则表示您遇到问题。例如,如果您有string1 = *hello
,则searchChar
为'*'
,而findIter
将返回错误,因为'*'
是无效的正则表达式。
在我的场景中,我总是在寻找一个字符文字。那么有没有办法确保searchChar
被转义(即'\*'
)当且仅当它需要时?
答案 0 :(得分:2)
进行纯字符串搜索。如果要计算子字符串的出现次数,str
个实例会为此提供count
方法。
>>> '*|*|'.count('*')
2
答案 1 :(得分:0)
Niemmi的评论是我需要的答案。看起来re.escape就是答案。