我正在尝试删除所有空的< p>标签CKEditor正在插入描述框,但它们似乎都有所不同.可能性似乎是:
<p></p> <p>(WHITESPACE)</p> <p> </p> <p><br /></p> <p>(NEWLINE) </p> <p>(NEWLINE)<br /><br />(NEWLINE) </p>
有了这些可能性,可能会有任何数量的空白,& nbsp;和< br />在段落之间标记,并且在一个段落中可能存在某种类型.
我也不确定< br />标签,从我看到它可能是< br />,< br />或者< br>.
我搜索了类似的答案,但是我看到的所有答案似乎都只适用于其中一种情况,而不是一次性完成.我想简单来说我要问的是,是否有一个正则表达式可以用来删除所有< p>某些HTML中的标签中没有任何字母数字文本或符号/标点符号?
好吧,与我的建议不要用正则表达式解析HTML相冲突,我写了一个正则表达式来做到这一点:
"#<p>(\s| |</?\s?br\s?/?>)*</?p>#"
这将正确匹配:
<p></p> <p> </p> <!-- ([space]) --> <p> </p> <!-- (That's a [tab] character in there --> <p> </p> <p><br /></p> <p> </p> <p> <br /><br /> </p>
它能做什么:
# / --> Regex start # <p> --> match the opening <p> tag # ( --> group open. # \s --> match any whitespace character (newline,space,tab) # | --> or # --> match # | --> or # </?\s?br\s?/?> --> match the <br> tag # )* --> group close,match any number of any of the elements in the group # </?p> --> match the closing </p> tag ("/" optional) # / --> regex end.