2010-06-15 3 views
4

정규 표현식을 사용하면이 원본 태그에서 'details.jsp'(따옴표없이!)를 반환 할 수 있습니다. 나는 모든 value = "details.jsp"를 쉽게 찾을 수 있지만, 속성 내에서 내용을 일치시키는 데 문제가 있습니다.정규 표현식이 속성 값과 일치합니다

<s:include value="details.jsp" />

어떤 도움이 크게 감사합니다!

감사

로렌스

+6

XML/HTML 구문 분석에 REGEX를 사용하지 마십시오. 이를 위해 XML 파서를 사용하십시오. 둘째, 작동하지 않는 정규식을 게시 할 수 있습니까? – ircmaxell

+0

관련 답변보기 : http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – huitseeker

답변

5

/value=["']([^'"]+)/ 첫 번째 캡처 그룹에 "details.jsp"를 배치한다.

편집 : 응답에서

당신이 정말 필요로하는 경우, 다음과 같은 표현이 더 유연, 코멘트의를 ircmaxell하기 :

/value=(['"])(.+)\1/

그것은 <s:include value="something['else']"> 같은 것들을 일치하지만, 단지주의 그 값은 두 번째 캡처 그룹에 배치됩니다.

하지만 앞에서 언급했듯이 정규식은 XML 구문 분석에 사용하려는 것이 아니기 때문에 (그렇게 간단한 경우는 제외) 파서를 사용해야 할 때 복잡한 정규 표현식에 너무 많은 시간을 투자하지 마십시오.

+0

나는 [[ " ]]'닫는 괄호 뒤에. –

+1

'([^ ' "] +)'가 모든 문자를 매치 (그리고 캡쳐)하기 때문에'[' '] ''또는'''를 입력 한 다음 중지하여 닫는 따옴표를 포함하지 않고 일치시킵니다. – mikej

+0

''그것은''유효한 XML이지만 regex는'무언가 ['. 차이점을 알려면 역 참조가 필요합니다. – ircmaxell

관련 문제