C# 正则表达式获取锚定标记C后的文本#
我有一个C#Regex,如下所示:C# 正则表达式获取锚定标记C后的文本#,c#,regex,anchor,C#,Regex,Anchor,我有一个C#Regex,如下所示: Regex r = new Regex(@"(?<value1>.*?)<a.*?href=(""|')(?<href>.*?)(""|').*?>(?<value2>.*?)</a>(?<value3>.*?)"); Regex r=newregex(@“(?*??(.*?)); 我可以获得value1、href、value2的文本。但是,value3始终为“” 获取锚点结束标记()
Regex r = new Regex(@"(?<value1>.*?)<a.*?href=(""|')(?<href>.*?)(""|').*?>(?<value2>.*?)</a>(?<value3>.*?)");
Regex r=newregex(@“(?*??(.*?));
我可以获得value1、href、value2的文本。但是,value3始终为“”
获取锚点结束标记()之后的文本时,我缺少什么。如果使用解析器,则不会返回空值,因为使用正则表达式解析HTML不是最好的方法。但要解决这个问题,请删除表达式末尾的非贪婪量词,使其贪婪(匹配尽可能多的数量)
(?*?)
^删除非贪婪量词
让它变得贪婪:
(?<value3>.*)
(?*)
请参见如果使用解析器,则不会返回空值,因为用正则表达式解析HTML不是最好的方法。但要解决这个问题,请删除表达式末尾的非贪婪量词,使其贪婪(匹配尽可能多的数量)
(?*?)
^删除非贪婪量词
让它变得贪婪:
(?<value3>.*)
(?*)
请参见您不应该使用正则表达式来解析html。要回答这个问题,我相信
?
后面的*
使表达式不贪婪。也许可以尝试删除它。你不应该使用正则表达式来解析html。要回答这个问题,我相信?
后面的*
会使表达式不贪婪。也许试着把它去掉。