は、私は一般的に、パターンに一致するようにre.findall(p, text)
を使用しますが、今、私は疑問に出くわした:文字列中の特殊正規表現文字をエスケープする方法は?
私はちょうどp
は通常の文字列ではなく、正規表現としてマッチさせたいです。
たとえば、pに '+'または '*'が含まれている場合、これらの文字にregexのような特別な意味がないようにします。別の言葉では、私はpを文字ごとに一致させたい。
この場合、p
は私にはわかりません。したがって、特殊文字を無視するために '\'を追加することはできません。
>>> p = 'foo+*bar'
>>> import re
>>> re.escape(p)
'foo\\+\\*bar'
それともp
は、別の文字列内にあるかどうかを確認するために文字列操作を使用します:あなたはre.escape
を使用することができます
「p」がわからない場合は、正規表現としてどのように使用できますか? – Marcin
@Marcin:彼は 'p'に関する先験的な情報を持っていないので、すでにエスケープされた文字列をハードコードすることはできません。なぜこれが下落したのか分からないのですか? @ NiklasB。 –
まあ、おそらく、しかし、なぜ彼は文字列を持っている場合、特殊文字をエスケープできませんでしたか? – Marcin