【问题标题】:Insert text between html tag using regex使用正则表达式在 html 标记之间插入文本
【发布时间】:2015-09-02 19:56:08
【问题描述】:

我想在空段落标签之间插入&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>

我尝试使用向后和向前看,但显然我不能在这里使用量词:(?&lt;=&lt; p[^&gt;]*&gt;)(?=&lt;\/p&gt;)

有什么想法吗?我可用的工具是 regex 和 c#

【问题讨论】:

    标签: c# regex wpf


    【解决方案1】:

    你可能想多了。我认为您只需将&gt;&lt;/p&gt; 替换为&gt;&amp;nbsp;&lt;/p&gt;,不是吗?

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

    编辑

    如果你必须使用 RegEx,那么你可以这样做:

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

    【讨论】:

    • 您的第一个建议

      也将被替换,我正在研究您的第二个选项,$1 $2 有什么作用?
    【解决方案2】:

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

    如果它是空的,请执行 getElementsByTagName('p')[0].innerHTML= '&amp;nbsp'; 之类的操作

    【讨论】:

    • 这个我不能用javascript。这基本上是一个转换为 html 的 xaml 文件,我试图摆脱一些噪音
    • 哎呀,那么this 答案应该是它。
    【解决方案3】:
    (?<=>)(\s*)(?=<\/p>)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-29
      • 2015-05-17
      相关资源
      最近更新 更多