2010-08-12 3 views
2

방화범이 숨겨진 div가 포함 된 마크 업이 있습니다.RegEx로 특정 ID로 전체 div를 가져오고 싶습니까?

:

그래서, 내 게시 된 내용에 나는 PHP에서 서버 측을 제거합니다 여분의 사업부가 (긴 짧은 이야기, 숨겨진 불을 지르고 div에 포함 된 YUI RTE 게시물 내용 다시는 그 활성)

<div firebugversion="1.5.4" style="display: none;" id="_firebugConsole"></div> 

나는 정확한 문자열 (버전이 변경 될 수 있음)이 항상 아닐 것이라는 것을 염두에 두어이 문자열과 일치하도록 작성해야 할 정규식에 대한 핸들을 얻지 못하는 것 같습니다.

모두 환영합니다!

+0

고려 문서에서 마지막으로 발견 된 것이 아니라, 다음 태그를 일치 있도록 게으른 매칭을 수행합니다'

' –

+0

또한 고려하십시오 : http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

답변

2

정규식은 작업에 가장 적합한 도구가 아닙니다,하지만 당신은 시도 할 수 있습니다 :

<div firebugversion=[^>]*></div> 

[…]character class이다. [aeiou]과 같은 것은 소문자 모음 중 하나와 일치합니다. 은 이 아니며 문자 클래스입니다. [^aeiou]중 하나와 일치하지만 소문자 모음입니다.

*은 0 이상입니다. repetition입니다. 따라서 [^>]*> 이외의 시퀀스와 일치합니다. 당신이 특별히 id을 대상으로 할 경우

, 당신은 시도 할 수 있습니다 :

<div [^>]*\bid="_firebugConsole"[^>]*></div> 

\bword boundary 앵커입니다.

1

나는이 제안 :

\<div firebugversion="(.+)" style="(.+)" id="(.+)"\> 

을 그런 다음 세 그룹이 있습니다

  1. firebugversion
  2. 스타일
  3. ID
+0

'<' and '>'는 탈출 할 필요가 없습니다. –

2

매치이 정규식 -

<div.*id="_firebugConsole".*?/div> 
1

이 사람은 완벽하지 아마 조금 더 복잡하고, 그러나 그것은 것입니다 :

  • 을 일치 firebugversion는 속성에 나타나는 순서에 상관없이 속성 속성 firebugversion
  • 일치가 포함 된 사업부 태그
  • div와 내용이 같거나 태그와 닫는 태그 사이에 간격이 있어도 일치합니다 (방화 상자 태그에 & nbsp; 그 안에 태그 앞에) 참고 : 그것은 단지는

<(div)\b([^>]*?)(firebugversion)([^>]*?)>(.*?)</div>

관련 문제