0
Jinja2를 사용 중이며 일부 특수 문자로 정규식을 수행하려고합니다. 내 템플릿 Jinja에서 파이썬에서 실행되는 필터를 호출합니다. text
을 유니 코드과 같이 전달합니다.파이썬에서 유니 코드를 사용하는 Regex
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