我很难创建一个匹配任何字符串的正则表达式:
1-包含“< p> \ S< / p>”在文本中间
2-不包含< p> \ S< / p>在文本的开头或结尾
感谢您的帮助
答案 0 :(得分:2)
从评论中看,您希望匹配<p>
和</p>
之间的单个空格。如果是这样,那么您应该使用\s
而不是\S
。 \s
匹配任何单个空白字符,其中\S
匹配任何一个非空白字符。
您可以尝试:
(?!^<p>\s<\/p>)(?!.*<p>\s<\/p>$)(?=.*<p>\s<\/p>)
部分(?!^<p>\s<\/p>)
确保字符串不以<p>\s<\/p>
开头。
部分(?!.*<p>\s<\/p>$)
确保字符串不以<p>\s<\/p>
结尾。
部分(?=.*<p>\s<\/p>)
确保字符串在某处<p>\s<\/p>
。
如果你在PHP中使用它,你应该将正则表达式放在一对分隔符之间:
$x="abc <p> </p> def";
$R="#(?!^<p>\s<\/p>)(?!.*<p>\s<\/p>$)(?=.*<p>\s<\/p>)#";
$result=preg_match($R,$x);
var_dump($result); // prints 1.