C#正则表达式与我的字符串不匹配

时间:2017-10-28 17:07:30

标签: c# regex

我有一个正则表达式字符串:

string regex =
                "\"\\d*\",\"(?<url>\\w|\\d|[().,-–_'])\".*";

我想要匹配的字符串:

string line =
   "\"4\",\"1800_in_sports\",\"24987709\",\"\",\"1906\",\"20171028152258\"";

当我尝试获取网址类别,甚至检查匹配时,都没有匹配:

var result = Regex.Match(line, regex);
string output = result.Groups["url"].Value;

如果我尝试使用Regex.IsMatch(..),它也会返回false。 我使用http://regexstorm.net/tester来测试这个,它可以在那里工作,但是,不是在我运行代码时。

在RegexStorm中,我使用了模式:

"\d{1,3}","(?<url>\w|\d|\n|[().,-–_'])+?"

2 个答案:

答案 0 :(得分:0)

仅用\ d和\\ w将\\ d替换为\ w。

答案 1 :(得分:0)

如Dour High Arch所述,应使用逐字字符串。在双引号前添加双引号允许逐字字符串。

将字符串正则表达式更改为:

string regex =
                @"""\d{1,3}"",""(?<url>\w|\d|\n|[().,-–_''])+?""";

现在返回一个匹配。