我正在使用C#
中的以下正则表达式Regex find = new Regex("[,\"]url(?<Url>[^\\]+)\\u0026");
并收到此错误:
"System.ArgumentException: parsing "[,"]url([^\]+)\u0026" - Unterminated [] set.
我对正则表达式有点新意,所以如果我错了,请纠正我。正则表达式应该从文本匹配中提取网址,如:
,则url = HTTP://domain.com \ u0026
“URL = HTTP://hello.com \ u0026
答案 0 :(得分:8)
您需要使用逐字字符串:
Regex find = new Regex(@"[,""]url(?<Url>[^\\]+)\\u0026");
编辑:但是,我将正则表达式更改为
Regex find = new Regex(@"(?<=[,""]url=)[^\\]+(?=\\u0026)");
然后整个匹配就是URL本身。无需捕获子组。
答案 1 :(得分:6)
你用\ _来转义其中一个括号,这意味着你有一个未终止的[。
这个cheat sheet非常适合.NET正则表达式,我将它打印在桌面上。完全推荐它!匹配\你想要\\。
哦是的,没有第一次编辑就错过了没有逐字逐句。按照蒂姆的建议我会说。
另一个非常便于快速测试的在线工具是Derek Slager's online tool。