要从WYSIWYG编辑器清理用户输入,我正在尝试查找以下字符串:
<p> </p>
<p> </p>
<p></p>
这是我正在使用的正则表达式:
/\<p\>([nbsp\;]*|[\s]*|[ ]*)\<\/p\>/i
我对RegEx很陌生,但据我所知,这是:
\<p\>
: - 完全匹配<p>
,然后(
- 匹配:
[nbsp\;]*
- “nbsp;
”确切地,任意次数|[\s]*
- 或任何空格字符,任意次数|[ ]*
- 或“”(空格),任意次数<\/p\>
- 完全匹配</p>
但是,此表达式仅匹配 <p>nbsp;</p>
,而不匹配其他两个。
我也尝试过:
/\<p\>[nbsp\;|\s| ]*\<\/p\>/i
我正在使用RegEx101.com(first expression,second expression)
对其进行测试我怎样才能让它发挥作用?
答案 0 :(得分:1)
答案 1 :(得分:1)
你不能使用&#34;整个单词&#34;在一个字符类中,以下就足够了......
~<p>(?: |\s)*</p>~i
注意:您不需要包含<space>
,\s
令牌将与空白字符匹配,您不需要转义{{} 1}}和<
,它们不被视为特殊字符。
答案 2 :(得分:1)
你忘了放大器; &安培;
>
在示例中
/\<p\>[ \;|\s| ]*\<\/p\>/i
这将匹配前3
答案 3 :(得分:0)
您不必使用方括号。
/\<p\>( *|\s*)\<\/p\>/i