确保使用Python正则表达式转义字符

时间:2017-02-12 15:36:48

标签: python regex

我在Python 3中有一些看起来像这样的代码:

import re

searchChar = string1[0]
re.finditer(searchChar, a_string)

因此,我们的想法是找到字符串中所有字符出现的索引。

问题在于string1可能是任何内容,所以如果它像string1 = 'cat'string1 = 'dog'一样正常,那么一切都很好。

但如果它以正则表达式控制字符开头,则表示您遇到问题。例如,如果您有string1 = *hello,则searchChar'*',而findIter将返回错误,因为'*'是无效的正则表达式。

在我的场景中,我总是在寻找一个字符文字。那么有没有办法确保searchChar被转义(即'\*')当且仅当它需要时?

2 个答案:

答案 0 :(得分:2)

进行纯字符串搜索。如果要计算子字符串的出现次数,str个实例会为此提供count方法。

>>> '*|*|'.count('*')
2

答案 1 :(得分:0)

Niemmi的评论是我需要的答案。看起来re.escape就是答案。