使用RegEx替换字符串

时间:2010-07-21 10:21:22

标签: c# .net regex

我有这种模式我用来替换字符串:

var html = "some test string";
var regex = new Regex(@"<(.|\n)+?>", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Multiline);
var result = regex.Replace(html, ?);

此模式匹配所有html标记<anything here>并替换为?。根据匹配类型,实际?" """。例如,如果我使用下面的HTML标记:

<a href="www.google.com">Google</a><a href="www.yahoo.com">Yahoo!</a>

结果如下所示:

Google?Yahoo! (here ? should be " ")

如果我使用html以下标记:

Buy it now for <b>$279</b><b>.99</b>!

结果如下所示:

Buy it now for ?$279??.99?! (and here ? should be "")

任何人都可以帮助改善这种模式以正常工作吗?提前谢谢

更新

好的,实际上我没有找到一种方法来做我需要的,所以我使用MatchEvaluator来检测哪里?应该是“”和“”!非常感谢;)

2 个答案:

答案 0 :(得分:3)

试试这个正则表达式:

Regex r = new Regex(@"<(.|\n)*?>", RegexOptions.IgnoreCase | RegexOptions.Singleline);

并检查您的选项,无需将singleLine和MultiLine结合使用。

答案 1 :(得分:1)

您可以使用RegEx Coach(http://www.weitz.de/regex-coach/)或http://gskinner.com/RegExr/(在线工具)来测试您的正则表达式并感受它们。