2010-02-26 2 views
1
some text I want to capture. <tag> junk I don't care about</tag> more stuff I want. 

한 번의 캡처로 첫 번째와 세 번째 문장을 캡처하는 정규식을 작성하는 쉬운 방법이 있습니까?정규식에서 캡처를 결합

답변

0

이해할 수 없습니다. 보통 regex search-and-replace 함수를 사용하면 처음부터 여러 캡처 그룹을 참조 할 수 있습니다.

1

당신은 또한 원치 않는 데이터를 제거하고 캡처 고려할 수 있습니다.

data = "some text to capture. <tag>junk</tag> other stuff to capture". 
data = re.replace('<tag>[^<]*</tag>', data, "") 
data_match = re.match('[\w\. ]+', data) 
0

그룹 캡처는 연속이어서 수행 할 수 없습니다. 아래처럼 정규식 하나 개의 구문 분석에서 할 코드의 라인을 가입 할 수 있습니다

^(?<line1>.*?)(?:\<\w*\>.*?\</\w*\>)(?<line3>.*?)$ 
0

여기가 아닌 정규식 방법, </tag>에 분할, <tag>에 분할 한 후, <tag>을 찾아 배열 항목을 가서 처음 얻을이다 요소. 예 :

>>> s="some text I want to capture. <tag> junk I don't care about</tag> more stuff I want. <tag> don't care </tag> i care" 
>>> for item in s.split("</tag>"): 
...  if "<tag>" in item: 
...  print item.split("<tag>")[0] 
...  else: 
...  print item 
... 
some text I want to capture. 
more stuff I want. 
i care 

asp.net의 기능을 사용하면 동일하게 수행 할 수 있습니다.

관련 문제