我有一个正则表达式字符串:
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|[().,-–_'])+?"
答案 0 :(得分:0)
仅用\ d和\\ w将\\ d替换为\ w。
答案 1 :(得分:0)
如Dour High Arch所述,应使用逐字字符串。在双引号前添加双引号允许逐字字符串。
将字符串正则表达式更改为:
string regex =
@"""\d{1,3}"",""(?<url>\w|\d|\n|[().,-–_''])+?""";
现在返回一个匹配。