2011-04-25 2 views
0

나는정규식 문제 - 미세 뒤로 아니라 앞으로의 TextMate

같은
<comments> 
    <sub_node>.... 
.... 
</comments> 

을 보이는 XML 파일에 일부 멀티 라인을 취소하기 위해 노력하고있어, 정규 표현식하지만 TextMate에 매우 좋은 아니에요 나는, 정규식 위의

<comments>(?m:.*)</comments> 

이있어 여러 발행 수를 대체/찾기이 사용하고 있지만, 나는 발견 할 경우, 그것은 처음 발견 한 후 외부 노드를 포함하여 그 사이의 모든 선택 파일의 마지막까지.

마지막 줄에서 이전 (거꾸로) 찾기를 수행하면 올바르게 블록을 캡처합니다. 나는 여기서 무엇을 잘못하고 있는지, 그리고 누군가가 이것을하는 훨씬 더 효율적인 방법을 제안 할지도 모르겠다.

감사합니다.

답변

2

욕심이 많지 않은 한정어를 사용해야합니다. Textmate에 대해서는 아무 것도 모르니까 지원하는지 여부는 모르겠습니다. 그렇지 않은 경우 <comments>을 검색 한 다음 </comments>이 아니고 <comments>이 아닌 수를 검색 할 수 있습니다. (이것은 좀 더 구체적인 도움이 될 것이지만 게시 된 예제는 익숙하지 않으며 일부 Textmate 별난이어야합니다.)

+0

네, 정보 주셔서 감사합니다. 좀 더 구체적으로해야합니다. –

0

정상적으로 작동하는 것처럼 보입니다.

<comments>(?m:.*?)</comments> 

여기에 유일한 불확실성이 . 메타 문자가 개행 문자와 일치 할 수 있도록 m (대한 "다중") 수정이다 : 당신은 너무처럼 ?을 추가하는 의미 꺼려 정량을 사용해야합니다. 대부분의 정규 표현식은 "단일 행"또는 "점 일치 전체"모드를 호출하고 s을 사용하여 지정합니다. 이러한 맛은 ^$anchors의 동작을 변경하는 m/"multiline"모드도 지원하는 경향이 있습니다. TextMate에서는 이것이 기본 모드이며 변경할 수 없습니다.