关于利用正则表达式删指定内容问题

hb_bigsea 2009-02-02 12:21:11
原始代码:
string str = "<td height=20 style=font-size:14px; align=left><span class=Content><a href=/test.php?xxx=xxx target=_blank><font color=#0000FF>测试标题</font></a> </p> </span></td>";

方法1:
System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"(<a\s+href\s*=\s*\S+?test.php[^>]+>\s*<[^>]+>)[^<]*(<[^>]*>\s*</a>)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

string s = regex1.Replace(str, "");

如上写法得到结果:
<td height=20 style=font-size:14px; align=left><span class=Content></p></span></td>";


方法二:
Regex re = new Regex(@"(<a\s+href\s*=\s*\S+?test.php[^>]+>\s*<[^>]+>)[^<]*(<[^>]*>\s*</a>)");
string s = "";
if (re.IsMatch(str))
{
s = re..Replace(str, "$1$2");

}

如上写法得到结果:
<td height=20 style=font-size:14px; align=left><span class=Content><a href=/test.php?xxx=xxx target=_blank><font color=#0000FF></font></a> </p> </span></td>



现在我想得到结果:
"<td height=20 style=font-size:14px; align=left><span class=Content>测试标题 </p> </span></td>";


也就是去掉a 连接HTML标记, 求解, 再次感谢 wackyboy 大哥提供的正则
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hb_bigsea 2009-02-02
  • 打赏
  • 举报
回复
楼上正解,上分,感谢 lindesuo sprc_lcl 两位爷
sprc_lcl 2009-02-02
  • 打赏
  • 举报
回复
string str = " <td height=20 style=font-size:14px; align=left> <span class=Content> <a href=/test.php?xxx=xxx target=_blank> <font color=#0000FF>测试标题 </font> </a> </p> </span> </td>";

System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@" <a\s+href\s*=\s*\S+?test.php[^>]+>\s* <[^>]+>([^ <]*) <[^>]*>\s* </a>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

string s = regex1.Replace(str, "$1");
lindesuo 2009-02-02
  • 打赏
  • 举报
回复
那就分两个步骤,先把前面的“测试内容”删掉 再删后面的 噢我去些正则 ==
hb_bigsea 2009-02-02
  • 打赏
  • 举报
回复
正解, 但我这个 测试标题 四个字是不固定的, 咱办?
lindesuo 2009-02-02
  • 打赏
  • 举报
回复
将替换的内容改下 ,如下:
System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"( <a\s+href\s*=\s*\S+?test.php[^>]+>\s* <[^>]+>)[^ <]*( <[^>]*>\s* </a>)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

string s = regex1.Replace(str, "测试标题");

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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