我试图在长字符串中的模式之后提取字符串,这基本上是页面的HTML输出。
例如;我需要从这个字符串中提取href标签的目标
<h2 class=\ "product-name\"><a href=\"/erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...">...</a></h2>\r\n
我需要的是:erkek-ayakkabi-spor-gri-17sfd3007141340-p
但我也需要找到与上面相似的字符串。因此,我需要在HTML字符串中href
之后搜索class=\ "product-name\"
个标记。
我怎样才能做到这一点?
答案 0 :(得分:1)
请检查一下。
正则表达式:
class=\"product-name\"(.*)<a\shref=\"(.*?)\"
更新了Regex:
class=\"product-name\".*<a\shref=\"(.*?)\"
C#代码:
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string data = "<h2 class=\"product-name\"><a href=\"erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...\">...</a></h2>\r\n<h2 class=\"test-name\"><a href=\"erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...\">...</a></h2>\r\n<h2 class=\"product-name\"><a href=\"erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...\">...</a></h2>\r\n";
//string regex = "class=\"product-name\"(.*)<a\\shref=\"(.*?)\"";
string regex = "class=\"product-name\".*<a\\shref=\"(.*?)\"";
var matches = Regex.Matches(data, regex, RegexOptions.Multiline);
foreach(Match item in matches)
{
//Console.WriteLine("Value: " + item.Groups[2]);
Console.WriteLine("Value: " + item.Groups[1]);
}
}
}