正则表达式匹配问题 <h1 class="username">韩同芳</h1><h1 class="username">❤孙小峰❤</h1><h1 class="username">张赫 ✿_✿(✿我不是单身、七年不会长)</h1>刚刚学的,我的正则表达式是这样的\b(?<=username.{1}\>)\w+(?=<\/h1)\b,单纯的汉字如第一个可以匹配出来,但是有这些心什么的特殊符号就不行了,请问这样的该如何匹配呢,谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正则表达式有问题,再说你的字符串通过Console.Write方法输出的内容和原始内容有差别的 string str= @"<h1 class=""username"">韩同芳</h1><h1 class=""username"">❤孙小峰❤</h1><h1 class=""username"">张赫 ✿_✿(✿我不是单身、七年不会长)</h1>"; Regex reg = new Regex(@"(?is)(?<=<h1\sclass=""username"">)(?:(?!</?h1).)*"); foreach (Match m in reg.Matches(str)) Console.WriteLine(m.Value); 说实话,楼主给的正则表达式我不是很理解,不知道是否可以解释一下。你可以这样实现:string testStr = "<h1 class=\"username\">韩同芳</h1> <h1 class=\"username\">❤孙小峰❤</h1> <h1 class=\"username\">张赫 ✿_✿(✿我不是单身、七年不会长)</h1>";Regex rg = new Regex("<h1 class=\"username\">([^<]*)</h1>",RegexOptions.Singleline);MatchCollection mc = rg.Matches(testStr);foreach (Match m in mc){Console.WriteLine(m.Groups[1].Value);//在这里可以写入某个文本文件,然后在文本文件中查看结果} //只要是包含username的标签都会捕捉里面的值 Regex re = new Regex(@"<\w+\b[^>]*?\busername\b[^>]*>([\s\S]*?)</\1>", RegexOptions.None); MatchCollection matches = re.Matches(str); foreach(Match match in matches) { //输出 string xxx = match.Groups[2].Value; } 高分求助:GPRS通信的示例代码 关于C#问题 请教水晶报表达人 如何让DataGridView来显示我需要的信息 急急急 !!!!!!!!!! textBox如何实时显示 如何合并结构不同的datatable? 请问BLOG里的存档统计是统计出来的? 如何同步两台计算机的时间?? ASP.NET Microsoft.Office.Interop.Excel.Application theExcel 初始化 [高难度问题!]请问怎么用c#制作工资条的打印?[急!!急!!!急!!!] 请教一个简单的问题,大家帮帮忙,谢谢,关于线程与UI相关的 winfrom实现类似百度的模糊查询功能
<h1 class=""username"">❤孙小峰❤</h1>
<h1 class=""username"">张赫 ✿_✿(✿我不是单身、七年不会长)</h1>";
Regex reg = new Regex(@"(?is)(?<=<h1\sclass=""username"">)(?:(?!</?h1).)*");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
你可以这样实现:
string testStr = "<h1 class=\"username\">韩同芳</h1> <h1 class=\"username\">❤孙小峰❤</h1> <h1 class=\"username\">张赫 ✿_✿(✿我不是单身、七年不会长)</h1>";
Regex rg = new Regex("<h1 class=\"username\">([^<]*)</h1>",RegexOptions.Singleline);
MatchCollection mc = rg.Matches(testStr);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[1].Value);
//在这里可以写入某个文本文件,然后在文本文件中查看结果
}
Regex re = new Regex(@"<\w+\b[^>]*?\busername\b[^>]*>([\s\S]*?)</\1>", RegexOptions.None);
MatchCollection matches = re.Matches(str);
foreach(Match match in matches)
{
//输出
string xxx = match.Groups[2].Value;
}