Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式:搜索由特定字符组成的文本,然后搜索由特定标记组成的文本_Regex - Fatal编程技术网

Regex 正则表达式:搜索由特定字符组成的文本,然后搜索由特定标记组成的文本

Regex 正则表达式:搜索由特定字符组成的文本,然后搜索由特定标记组成的文本,regex,Regex,我想找到所有以“#”字符结尾的文本和内部标记。 你会怎么做?例如: awoie awiefaow <script type="javascript"> #bla#ff awa </script> fawe aaa#bla1# <script>awa #bla2# aa</script>ff awoie awiefaow#bla#ff awa fawe aaa#bla1#awa#bla2#aaff 正则表达式应该只找到#bla#和#bla2# 我

我想找到所有以“#”字符结尾的文本和内部标记。 你会怎么做?例如:

awoie awiefaow <script type="javascript"> #bla#ff awa </script> fawe aaa#bla1# <script>awa #bla2# aa</script>ff
awoie awiefaow#bla#ff awa fawe aaa#bla1#awa#bla2#aaff
正则表达式应该只找到#bla#和#bla2#

我想出了一些像:

(?i)(?s)((?<=&lt;script.&#42;?>.&#42;?)#.&#42;?#(?=.&#42;?&lt;/script.&#42;?>))
(?i)(?s)((?*;?)*;?(?=.*;?/script.*;?>)
但这也会回来

解决这个问题的好办法是什么?或者在多个文件中进行高级文本搜索是否有更灵活的方法

这个C#示例使用lookbehind

string input =@"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