2016-07-17 7 views
0

Ich brauche die folgenden Muster entsprechen:Wie ersetzt man spezielle Regex-Zeichen in Python?

text1.cps.text2 
text1.text2.cps.text3 
cps.text1 

wo text1, text2 sind einige zufällige Wörter. cps ist eines von mehreren möglichen Wörtern. Also schrieb ich folgendes regexp:

pattern = "(\w+\.)*?({0})(\w+\.)*" 

Und als ich die Liste der möglichen Wörter iterieren:

for word in ['cps.','cps.tbl.']: 
    p = pattern.format(word) 

Das Problem ist also, dass Artikel aus den möglichen Worten können spezielle Regex Zeichen enthalten. Also ich bin auf der Suche nach Funktion, die jedes Sonderzeichen in so etwas ersetzt:

cps\. and cps\.tbl\. 
+0

Haben Sie rohe Saiten ausprobiert? – Rockybilly

Antwort

1

Das re Modul definiert eine escape Funktion, die tut genau das. Etwas wie:

for word in words: 
    pattern = re.escape(word) 
    ...