使用正则表达式在html标记之间插入文本

时间:2015-09-02 19:56:08

标签: c# regex wpf

我想在空段落标记之间插入&nbsp

输入:

1. <div><p></p></div>
2. <div><p style="margin: 0 0 0 0"></p></div>

预期输出:

1. <div><p>&nbsp;</p></div>
2. <div><p style="margin: 0 0 0 0">&nbsp;</p></div>

我尝试使用后面和后面的外观,但显然我不能在这里使用量词:(?<=< p[^>]*>)(?=<\/p>)

有什么想法吗?我可用的工具是正则表达式和c#

3 个答案:

答案 0 :(得分:4)

你可能会过度思考。我认为您只需将></p>替换为>&nbsp;</p>,不是吗?

yourString = yourString.Replace("></p>", ">&nbsp;</p>");

修改

如果您必须使用RegEx,那么您确实喜欢这样:

yourString = Regex.Replace(yourString, "(<p[^>]*>)(</p>)", "$1&nbsp;$2", RegexOptions.IgnoreCase);

答案 1 :(得分:0)

获取所有段落标记并检查其内部文本是否为空。

如果它为空,请执行getElementsByTagName('p')[0].innerHTML= '&nbsp';

之类的操作

答案 2 :(得分:0)

(?<=>)(\s*)(?=<\/p>)