Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.Net正则表达式仅查找两个出现多次的字符串标记之间的文本_.net_Regex_String - Fatal编程技术网

.Net正则表达式仅查找两个出现多次的字符串标记之间的文本

.Net正则表达式仅查找两个出现多次的字符串标记之间的文本,.net,regex,string,.net,Regex,String,以下是我正在搜索的字符串: ABC=#XXX#result string (1)#XXX#this is #text# in the middle #XXX#result string (2)#XXX# 下面是我想使用.Net Regex类检索的结果: result string (1) result string (2) 最接近我的是: Regex.Matches(srchstrg, "#XXX#" + "(.+)" + "#XXX#"); 但它没有达到我想要的效果 谢谢你的建议 您必

以下是我正在搜索的字符串:

 ABC=#XXX#result string (1)#XXX#this is #text# in the middle #XXX#result string (2)#XXX#
下面是我想使用.Net Regex类检索的结果:

result string (1)
result string (2)
最接近我的是:

Regex.Matches(srchstrg, "#XXX#" + "(.+)" + "#XXX#");
但它没有达到我想要的效果


谢谢你的建议

您必须使中心组变懒,否则它将尝试尽可能多地匹配。试一试

#XXX#(.+?)#XXX#
这将使它只匹配尽可能少的字符串,因此它将获得您想要的两个字符串。

如果结果文本中没有
#
,则使用否定集进行搜索,该否定集表示匹配否定集中没有的字符串
[^#]+
表示匹配,直到遇到
为止

#XXX#([^#]+)#XXX#

这比试图最小化贪婪操作要干净得多。

是的,就是这样!谢谢