인용구로 된 문자열 (블랙 박스에서 기록한 항공사 조약 따옴표)에 대한 텍스트 문서를 조사하는 python 정규 표현식을 작성했습니다. 나는 다음 규칙들로 정규 표현식을 작성하려고 시도했다 :python 정규 표현식에서 괄호의 이상한 동작
따옴표 사이에 무엇이 반환되는지.
단일으로 열리는 경우 하나만 닫으면 반환됩니다.
두 번으로 열리는 경우 두 번으로 닫을 경우에만 반환됩니다.
예를 들어 나는 "hi there"또는 "hi there"와는 일치하지 않지만 "hi there"와 "hi there"와 일치하고 싶습니다.
CA "Runway 18, wind 230 degrees, five knots, altimeter 30."
AA "Roger that"
18:24:10 [flap lever moving into detent]
ST: "Some passenger's pushing a switch. May I?"
그래서 나는 간단한 시작하기로 결정 :이 정규 표현식은 매우 예기치 않게 역할을
re.findall('("|\').*?\\1', page)
########## /("|').*?\1/ <-- raw regex I think I'm going for.
내가 좋아하는 일을 포함하는 테스트 페이지를 사용합니다.
는 내가 생각했던 것 :
- ("|")로 다시/1을 참조 저장, 단일 또는 이중이든 따옴표를 맞 춥니 다. *.?
- . *? 비 탐욕스러운 와일드 카드와 일치합니다.
- \ 1 역 참조 \ 1에서 찾은 것과 일치합니다 (1 단계).
대신 따옴표 배열을 반환하지만 결코 다른 것을 반환하지 않습니다.
['"', '"', "'", "'"]
동등한 (afaik) 정규식이 VIM에서 정상적으로 작동하기 때문에 나는 정말 혼란스러워합니다.
왜 경기로 괄호 안에있는 것만을 반환 않습니다
\("\|'\).\{-}\1/)
내 질문은 이것이다? 이것은 역 참조에 대한 나의 이해의 결함입니까? 그렇다면 왜 VIM에서 작동합니까?
내가 파이썬에서 찾고있는 정규식을 작성하려면 어떻게해야합니까?
도움 주셔서 감사합니다.
문서화가 여전히 의미가 없었습니다. 왜냐하면 그룹은 대조군이 아니라 잠재 성 일치를 의미하기 때문입니다. 그걸 정리 해줘서 고마워. –