C# Regex.Matches不返回所有匹配项
我正在开发一个小的命令行实用程序。我试图使用正则表达式来提取通过命令行传递的参数 例如 utils.exe-t foo-r bar-pd:\temp*.txt 我使用的是正则表达式。与以下表达式匹配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
-{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]*;谢谢各位。你提出的模式都很好。我犯了一个根本性的错误,没有将测试中的参数作为逐字字符串@卡西米利希波利特建议我这样做的模式。这应该让我检查测试用例中的参数。那是深夜,但不是借口。我很高兴我能够坚持这个实现。另一方面,我有大量的正则表达式模式可供选择:-