请问这个正则错在哪里

zky0901 2010-02-08 10:40:04
问题一:
<span id=zoom class="default_newtest7">
<span id="tt">abc(来源:新华网,本站编辑)</span>

我想取得"abc"
我用的正则(((?<=<span[^>]*?(?:id="tt">)).*?(?=</span>))?=(.*?))取到的都是==,请问错在哪里

问题二:
如果源码是<span id=zoom class="default_newtest7">
<span id="tt">abc(来源:新华网,本站编辑)def</span>
想得到abcdef,这个正则又应该如何写呢????


...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2010-02-08
  • 打赏
  • 举报
回复
你的正则,自己找个正则匹配工具分析一下吧,嵌套层次太乱了,没必要搞那么多分组和判断的
-过客- 2010-02-08
  • 打赏
  • 举报
回复
1、

string test = @"<span id=zoom class=""default_newtest7""> 
<span id=""tt"">abc(来源:新华网,本站编辑)</span> ";
Regex reg = new Regex(@"(?<=<span[^>]*?id=""tt""[^>]*>)[^<>(]+");
Match m = reg.Match(test);
if (m.Success)
{
richTextBox2.Text += m.Value;
}


2、
string test = @"<span id=zoom class=""default_newtest7""> 
<span id=""tt"">abc(来源:新华网,本站编辑)def</span>";
Regex reg = new Regex(@"(?<=<span[^>]*?id=""tt""[^>]*>)[^<>]+");
Regex regF = new Regex(@"([^)]*)");
Match m = reg.Match(test);
if (m.Success)
{
richTextBox2.Text += regF.Replace(m.Value, "");
}


如果中间的内容固定,直接Replace一下就是了
问题一也可以用问题二的代码处理

62,265

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧