與大多數(shù)編程語言相同坏匪,正則表達(dá)式里使用”\”作為轉(zhuǎn)義字符济似,這就可能造成反斜杠困擾讥耗。假如你需要匹配文本中的字符”\”打厘,那么使用編程語言表示的正則表達(dá)式里將需要4個(gè)反斜杠”\\”:前兩個(gè)和后兩個(gè)分別用于在編程語言里轉(zhuǎn)義成反斜杠,轉(zhuǎn)換成兩個(gè)反斜杠后再在正則表達(dá)式里轉(zhuǎn)義成一個(gè)反斜杠秫逝。
Python里的原生字符串很好地解決了這個(gè)問題恕出,這個(gè)例子中的正則表達(dá)式可以使用r”\”表示。同樣违帆,匹配一個(gè)數(shù)字的”\d”可以寫成r”\d”浙巫。建議使用raw string(原生字符),就不用再考慮正則表達(dá)式的轉(zhuǎn)義問題刷后,而是只考慮編程的轉(zhuǎn)義問題的畴,如果熟悉其他編程語言的話,就很好理解了尝胆。
轉(zhuǎn)義分為兩個(gè)階段:編程語言轉(zhuǎn)義-》正則表達(dá)式轉(zhuǎn)義
使用了raw string類型的時(shí)候只考慮前面的編程語言轉(zhuǎn)義即可丧裁,后面的不需要考慮,而是用普通的字符串就需要同時(shí)考慮上面兩個(gè)問題含衔。