Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
C# 正则表达式:如何将每个匹配限制为一个结果_C#_Regex - Fatal编程技术网

C# 正则表达式:如何将每个匹配限制为一个结果

C# 正则表达式:如何将每个匹配限制为一个结果,c#,regex,C#,Regex,我在一些文本数据上使用了一个简单的正则表达式。这个表达似乎很有效。我现在需要解决的问题是,每个匹配只返回一个结果,如下面所示。当然,数据要比这个大得多 示例数据: stuffbefore233/stuffafter stuffbefore233/stuffafter stuffbefore111/stuffafter stuffbefore111/stuffafter 正则表达式: (?<=stuffbefore)[\d]+(?=/stuffafter) (?首先,筛选结果以删除重复项

我在一些文本数据上使用了一个简单的正则表达式。这个表达似乎很有效。我现在需要解决的问题是,每个匹配只返回一个结果,如下面所示。当然,数据要比这个大得多

示例数据:

stuffbefore233/stuffafter
stuffbefore233/stuffafter
stuffbefore111/stuffafter
stuffbefore111/stuffafter
正则表达式:

(?<=stuffbefore)[\d]+(?=/stuffafter)

(?首先,筛选结果以删除重复项应该非常简单。例如:

MatchCollection matches = Regex.Matches(s, @"(?<=stuffbefore)\d+(?=/stuffafter)");
IEnumerable<string> a = matches.Cast<Match>().Select(m => m.Value).Distinct();

首先,筛选结果以删除重复项应该非常简单。例如:

MatchCollection matches = Regex.Matches(s, @"(?<=stuffbefore)\d+(?=/stuffafter)");
IEnumerable<string> a = matches.Cast<Match>().Select(m => m.Value).Distinct();

实际上,我需要更多信息您想要匹配什么以及什么是测试输入字符串?测试输入字符串作为示例数据列在上面。我正在匹配任何数量的数字,这些数字介于stuffbefore和/stuffafter之间,如上所列。实际上,我需要更多信息您想要匹配什么以及测试输入字符串是什么?上面列出了测试输入字符串作为示例数据。我正在匹配上面列出的stuffbefore和/或stuffafter之间的任意数量的数字数字。编辑问题后,需要额外注意一个问题-您需要使用
RegexOptions。如果您的测试包含多行,则需要使用单线
。编辑问题后,需要额外注意一个问题-y如果测试包含多行,则需要使用
RegexOptions.Singleline