【发布时间】:2011-03-21 07:27:51
【问题描述】:
我有一个包含带有 html 内容的页面对象的数据库。数据库中的很多行都包含此内容
<p style="float: left; margin-right: 20px; height: 300px;">
<img src="...">More html ...
</p>
所以我创建了一个超级简单的正则表达式替换:
foreach (var page in db.Pages)
{
string pattern = @"<p style=""float: left; margin-right: 20px;"">(.*)</p>/ms";
if( Regex.Match(page.Content, pattern).Success)
{
page.Content = Regex.Replace(page.Content, pattern, "<div class=\"contentimage\" >$1</div>");
}
}
// db.SubmitChanges();
虽然当我在正则表达式测试工具中运行正则表达式时,它仍然有效。但在 c# 代码中却没有。谁能帮帮我。
如果有人知道如何使用 sql 中的正则表达式替换进行更新,那很好。
Regex 不是我的强项(尽管很遗憾)。但这是我要尽快学习的事情清单;)
【问题讨论】:
-
我不想这么说,但正则表达式真的不是处理 html 的首选工具...
-
现在来吧,马克,你从来没有读过 perl 网络脚本吗?这些人清楚地表明,正则表达式是一切的首选工具!除非您是那些认为代码应该是可读的 lamo microsoft 开发人员之一,否则正则表达式应该有一组标准的非语言特定指令..
-
对于所有认为应该使用正则表达式处理 HTML 的人,我建议好好阅读:stackoverflow.com/questions/1732348/…恕我直言,每次有人用
regex和html标记问题时,他应该是引用了这个答案。 -
@Darin +1 引用该问题