正则表达式匹配空格但不匹配制表符(php)

7

如何编写一个正则表达式,使其匹配空格但不匹配制表符和换行符?

我尝试了[[:blank:]]{2,},但它无法正常工作,因为它只匹配空格或制表符而不包括换行符。


2
这个:[^\S\t\n\r] - ctwheels
2个回答

13

根据我的原始评论,您可以使用这个。

代码

在此处使用正则表达式

注意:链接包含空白字符:制表符换行符空格。只匹配空格

[^\S\t\n\r]

因此,您的正则表达式应为[^\S\t\n\r]{2,}


解释

  • [^\S\t\n\r] 匹配不在集合中的任何字符。
    • \S 匹配任何非空白字符。由于它是一个双重否定,实际上它将匹配任何空白字符。添加 \t\n\r 到否定集合中确保我们也排除了这些特定字符。基本上,这个正则表达式的意思是:
      • 匹配任何空白字符,但不包括 \t\n\r

在正则表达式中,这个原则经常与单词字符 \w 一起使用,来排除下划线 _ 字符: [^\W_]


1
太好了!它正在运行,谢谢你的一切。我已经知道了非常好的解释。 - János Sági

1

[ ]{2,}正常工作(不确定php是否正常) 甚至/ {2,}/


可能也比双重否定的方法更快。 - Jonathan E. Landrum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接