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
C# Regex.Matches不返回所有匹配项_C#_.net_Regex - Fatal编程技术网

C# Regex.Matches不返回所有匹配项

C# Regex.Matches不返回所有匹配项,c#,.net,regex,C#,.net,Regex,我正在开发一个小的命令行实用程序。我试图使用正则表达式来提取通过命令行传递的参数 例如 utils.exe-t foo-r bar-pd:\temp*.txt 我使用的是正则表达式。与以下表达式匹配 -{1}([a-z]){1}[ ]*[a-zA-Z0-9_ :\\\*.]* 这与-t foo和-r bar匹配,但与-p d:\temp*.txt不匹配 这似乎在在线正则表达式计算器中有效,但在.NET中的regex.Matches方法中无效 我是否需要调整正则表达式以使用regex.Match

我正在开发一个小的命令行实用程序。我试图使用正则表达式来提取通过命令行传递的参数

例如

utils.exe-t foo-r bar-pd:\temp*.txt

我使用的是正则表达式。与以下表达式匹配

-{1}([a-z]){1}[ ]*[a-zA-Z0-9_ :\\\*.]*
这与-t foo和-r bar匹配,但与-p d:\temp*.txt不匹配

这似乎在在线正则表达式计算器中有效,但在.NET中的regex.Matches方法中无效


我是否需要调整正则表达式以使用regex.Matches实现我想要的结果

从最后一个字符类中删除空格。{1} 量词是无用的,删除它们。你的捕获组是正确的还是你的意思:-{1}[a-z]{1}[]*[a-zA-Z0-9:\\\\*.]*?@chosenbreed37:将你的模式放在一个逐字字符串中。我会使用以下命令:string pattern=@-?'option.\s+?'value'[^\s]*;谢谢各位。你提出的模式都很好。我犯了一个根本性的错误,没有将测试中的参数作为逐字字符串@卡西米利希波利特建议我这样做的模式。这应该让我检查测试用例中的参数。那是深夜,但不是借口。我很高兴我能够坚持这个实现。另一方面,我有大量的正则表达式模式可供选择:-