C# 需要正则表达式值才能正确匹配我的输入文本

C# 需要正则表达式值才能正确匹配我的输入文本,c#,regex,match,C#,Regex,Match,我有以下字符串,需要一个正则表达式将其与返回的值和键相匹配 guid=“b3b63ef4-ebb3-4983-9c4e-0eccf77ec32c”name=“test.testName” 我使用了以下代码,但听起来有一个问题: Regex.Matches(s, "(\\w+)=\"([\\w\\.:\\?/=]+)\"", RegexOptions.IgnoreCase | RegexOptions.Compiled) 我得到的只是name=“test.testName”而不是guid 有什么

我有以下字符串,需要一个正则表达式将其与返回的值和键相匹配

guid=“b3b63ef4-ebb3-4983-9c4e-0eccf77ec32c”name=“test.testName”

我使用了以下代码,但听起来有一个问题:

Regex.Matches(s, "(\\w+)=\"([\\w\\.:\\?/=]+)\"", RegexOptions.IgnoreCase | RegexOptions.Compiled)
我得到的只是name=“test.testName”而不是guid


有什么建议吗?

您的regexp当前不允许连字符。尝试:

Regex.Matches(s, "(\\w+)=\"([\\w\\.:\\-\\?/=]+)\"", ...params...);

这是因为您没有匹配guid中的
-
。它不在
\w
中,也不在角色类的任何其他部分中

如果您确定输入的格式,可以尝试与

Regex.Matches(s, "(\\w+)=\"([^\"]+)\"", RegexOptions.IgnoreCase | RegexOptions.Compiled);
这匹配了一个单词、一个等号、一个开头的双引号,然后是一系列的双引号,后跟一个结尾的双引号。

可能类似于:

Regex.Matches(s, @"(\w+)=""([^""]*)""",
    RegexOptions.IgnoreCase | RegexOptions.Compiled);