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