2010-03-26 2 views
0

XML 자식을 요소 매개 변수로 변환하고 Textmate에서 사용한 더러운 정규식 스크립트가 있습니다. 닷 (.)이 줄 바꿈을 검색하지 않는다는 것을 알고 있으므로 해결 방법이 있습니다.이 정규 표현식을 작성하는 더 좋은 방법은 무엇입니까?

검색

language="(.*)" 
(.*)<education>(.*)(\n)?(.*)?(\n)?(.*)?(\n)?(.*)?</education> 
(.*)<years>(.*)</years> 
(.*)<grade>(.*)</grade> 

내가이 할 수있는 더 좋은 방법이 알고

grade="$13" language="$1" years="$11"> 
     <education>$3$4$5$6$7$8$9</education> 

를 교체합니다. 내 regex 기술을 더욱 발전 시키도록 도와주세요.

+0

DUP http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained- 다음 language 속성의 경우,이 형태를 취할 것 태그. – bmargulies

+0

보유하고있는 XML 조각과 원하는 XML을 보여줄 수 있다면 도움이 될 것입니다. 나는 당신이하려는 것을 이해하기가 어렵다. – John

+0

어떻게 "(. *) (\ n)? (. *)? (\ n)? (. *)? (\ n)? (. *)?" 및 "$ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9"와 같은 형식을 사용하여 가능한 모든 개행과 반환 값에 대해 자신을 복제 할 필요가 없습니다. – rxgx

답변

2

xml 파서를 사용하고 xml을 파싱하려면 정규식을 사용하지 마십시오. 난 당신이 .*를 사용하는 다른 곳에서 동일한 기술을 사용,

<education>([^<>]*)</education> 

가능하면 다음 <education> 요소 내부에 다른 태그가없는 경우

0

, 난에 그 부분을 변경합니다. 의

language="([^"]*)" 
관련 문제