gpt4 book ai didi

c# - 当字符串包含多个双引号时,从字符串中提取 URL 的正则表达式失败?

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:20 24 4
gpt4 key购买 nike

我正在使用正则表达式从字符串中提取 url 并且它主要工作;

var regex=new Regex("<a [^>]*href=(?:'(?<href>.*?)')|(?:\"(?<href>.*?)\")",RegexOptions.IgnoreCase);

以下字符串工作正常:

"This is Test page <a href='test.aspx'>test page</a>"
"This is Test page <a href='test1.aspx'>test</a> another one <a href='test2.aspx'>test</a>"
"This is Tests\"s page <a href='test1.aspx'>test</a> another one <a href='test2.aspx'>test</a>"
"This is Test page"
"This is Test page\"s without problem"

但有时它并没有返回好的结果。以下代码返回错误结果(字符串包含 2 个双引号)-

var inputString="This string create \"problem\" for me";    
var regex=new Regex("<a [^>]*href=(?:'(?<href>.*?)')|(?:\"(?<href>.*?)\")",RegexOptions.IgnoreCase);
var urls=regex.Matches(inputString).OfType<Match>().Select(m =>m.Groups["href"].Value);
foreach(var zzzzzzz in urls){
Console.WriteLine(zzzzzzz);
}

Demo with problem

谁能帮我解决这个问题?

最佳答案

也许你可以像这样改变你的正则表达式:<a .*?href=(?:['"](?<href>[^'"]*?)['"])在 Csharp 上:"<a .*?href=(?:['\"](?<href>[^'\"]*?)['\"])"

关于c# - 当字符串包含多个双引号时,从字符串中提取 URL 的正则表达式失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30659022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com