2011-07-05 3 views
0

"#"문자로 둘러싸인 모든 텍스트를 찾고 < script> 태그 내에 있습니다. 어떻게 생각하세요? 예를 들면 다음과 같습니다.Regex : 특정 문자로 검색 한 다음 특정 태그로 검색합니다.

awoie awiefaow <script type="javascript"> #bla#ff awa </script> fawe aaa#bla1# <script>awa #bla2# aa</script>ff 

정규식은 # bla # 및 # bla2 # 만 찾아야합니다.

내가 somehting 등으로 왔어요 :

(?i)(?s)((?<=&lt;script.&#42;?>.&#42;?)#.&#42;?#(?=.&#42;?&lt;/script.&#42;?>)) 

하지만 또한 #의 bla1 번호를 반환합니다.

이 문제를 해결하는 좋은 방법은 무엇입니까? 또는 여러 파일에서 고급 텍스트를 검색 할 때 좀 더 유연한 무언가가 있습니까?

답변

0

이 C# 예제는 lookbehinds를 사용합니다.

string input [email protected]"awoie awiefaow <script type=""javascript""> #bla#ff awa </script> fawe aaa#bla1# <script>awa #bla2# aa #bla3# aa</script>ff"; 
string pattern = @"(?<=<script[^>]*>(?:(?!</script>)(?:[^#]|#(?:(?!</script>)[^#])*#))*#)([^#]*)"; 
MatchCollection matches = Regex.Matches (input, pattern, RegexOptions.IgnoreCase); 

수익률 :

Match[0] => bla 
Match[1] => bla2 
Match[2] => bla3 
매우, 작동
+0

감사합니다 :) – blaat

관련 문제