0
私はJinja2を使用しており、いくつかの特殊文字で正規表現を行いたいとします。私のテンプレートのJinjaでは、私はのように、ユニコードのようにPython上で動作するフィルタを呼び出します。PythonでUnicodeを使った正規表現
def insert_link(text, link):
artigo_pattern = r"art(\.|(igo))?\s?\d+\s?(o|º|\.)?"
#Pattern with error
paragrafo_pattern = r"(§\s?\d+\s?(o|º|\.)?)|(par(a|á|Á)grafo\s(u|ú|Ú)nico)"
alinea_pattern = r"[a-z]\s?\)"
finalPattern = ')|('.join([
artigo_pattern , paragrafo_pattern, alinea_pattern
])
finalPattern = ''.join([ "((", finalPattern, "))" ])
mat = re.match(finalPattern, text, re.IGNORECASE)
は、しかし、それはパターン "§70" なぜなら§文字を認識することはありません。 rをuで置き換えると、他のパターンは "Parágrafoúnico"として認識されません。
したがって、上記のすべてのパターンに一般正規表現を行うにはどうすればよいですか?
あなたは、これが問題ですか? 're.match(r'§ '、'§ ')'は私のために一致を返します。 –
しかし、それは "§"ではなく、 "§"です。 're.match(ur'§ '、'§ ')'では動作しますが、他のパターンではエラーになります。 –
関数の最後に '' return mat''を追加すると、両方の式が一致します – izidor