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

时间:2013-12-23 13:19:40

标签: 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。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您的正则表达式目前不允许使用连字符。尝试:

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

答案 1 :(得分:1)

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

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

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

这匹配一个单词,一个等号,一个开头的双引号,然后是一些 双引号然后结束双重的任何内容报价。

答案 2 :(得分:0)

可能是这样的:

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