편집 :이 질문은 실제로 "r"플래그가 의미하는 것을 선택하면 이해가되지 않습니다. 자세한 내용은 here입니다. 빠른 anwser를 찾는 사람들을 위해 아래에 추가했습니다. 내가 파이썬 스크립트에서 수동으로 정규 표현식을 입력하면파이썬 원시 문자열과 유니 코드 : 웹 입력을 정규식 패턴으로 사용하는 방법?
, 내 패턴 문자열 플래그 4 개 조합을 사용할 수 있습니다
- P1 = "패턴"
- P2 = U "패턴" 을
- P3 = R "패턴"
- P4 = RU "패턴"
내가 무리가 웹 양식 입력에서 오는 유니 코드 문자열과 regexp 패턴으로 사용하고 싶습니다.
문자열에 적용해야하는 프로세스를 알고 싶습니다. 위의 수동 양식 사용과 비슷한 결과가 예상됩니다. 다음과 같이 입력하십시오 :
import re
assert re.match(p1, some_text) == re.match(someProcess1(web_input), some_text)
assert re.match(p2, some_text) == re.match(someProcess2(web_input), some_text)
assert re.match(p3, some_text) == re.match(someProcess3(web_input), some_text)
assert re.match(p4, some_text) == re.match(someProcess4(web_input), some_text)
someProcessN에 대한 someProcessN은 무엇이고 그 이유는 무엇입니까?
someProcess2는 로컬 인코딩으로 유니 코드 변환을 수행해야하지만 someProcess2는 아무 것도 할 필요가 없다고 가정합니다. 원시 문자열 리터럴의 경우 나는 우둔합니다.
're.match'는 regexp match 객체를 생성하고 동일한 데이터를 포함하고 있다면'=='와 비교할 수 없다는 것을 알아 두십시오 ('=='신원 확인. 이는 참조가 동일해야 함을 의미합니다). – poke
맞습니다. 예상되는 결과를 얻으려면 .group()과 .groups()를 섞어서 사용해야합니다. –