我在Python 3的一些代碼,看起來像這樣:確保字符轉義使用Python正則表達式
import re
searchChar = string1[0]
re.finditer(searchChar, a_string)
這樣的想法是找到一個字符串的字符出現的所有的索引。
問題是,string1
可能是任何東西,所以如果它是像string1 = 'cat'
或string1 = 'dog'
正常的東西,那麼一切都很好。
但是,如果它以一個正則表達式控制字符開頭,那麼你有一個問題。例如,如果您有string1 = *hello
,那麼searchChar
爲'*'
,並且findIter
將返回錯誤,因爲'*'
是無效的正則表達式。
在我的情況下,我一直在尋找一個字符文字。那麼是否有辦法確保searchChar
被轉義(即'\*'
)當且僅當它需要?
看起來像正則表達式得到更多的方式,它的幫助。那麼簡單的字符串搜索呢? –
使用['re.escape'](https://docs.python.org/3/library/re.html#re.escape) – niemmi
您不需要're'來查找字符串中字符的出現,像'string.find'應該就足夠了。見https://docs.python.org/2/library/string.html#string.find –