2011-07-05 32 views
0

我想查找所有包含「#」char的文本,並在< script>標籤內。 你會怎麼做?例如:正則表達式:搜索特定字符引起的文本,然後通過特定標籤

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

正則表達式只應該找到#bla#和#bla2#。

我拿出服用點,如:

(?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

相關問題