검색 패턴을 찾고 있습니다. 다른 패턴 안에 따라야하는 특정 패턴이 있습니다. 여하튼이 패턴이있는 경우 <
및 >
문자 다음에 \
문자를 이스케이프해야합니다. 문자가 패턴에 없으면 문자가 나타날 수 있습니다.regex : 문자가 있어야하고 뒤에 다른 이스케이프 문자가옵니다.
내가 이런 식으로 일을 시도 : input_string = '<First tag:<Second tag:hello>tag ends>' re.findall('(?<!\\)<.*?:.*?(?<!\\)>',input_string)
예상 출력 : 내가 가진 무엇 ['<Second tag:hello>']
은 다음과 같습니다 (?<!\\)<[^(?<!\\)<.*:]+:[^(?<!\\)<.*:]+?(?<!\\)>
이것은 위의 예를 전달합니다 ['<First tag:<Second tag:hello>']
내가이 패턴과 노력을 이 입력에 대해서는 input_str = '<First tag:\<Second tag:hello>tag ends> <First tag:<Second tag:hello\>tag ends> <First tag:\<Second tag:hello\>tag ends>'
이 실패합니다.
이 예상 출력 : ['<First tag:\<Second tag:hello>','<Second tag:hello\>tag ends>','<First tag:\<Second tag:hello\>tag ends>']
의 예로서. 그것은 작동하지 않습니다. –
그래서 가장 안쪽으로 이스케이프 처리되지 않은 '<' to '>'을 원하십니까? 그건 정규식으로 할 수 있어야합니다. – TemporalWolf
@TemporalWolf 그렇습니다, 정확히 ..':'with '<' and '>' – Sohn