我正在尝试创建一个正则表达式,如果String模式包含空格或为空,则返回false。到目前为止我有这个
[^\s]
我认为这将确保字符串不包含空格,但我不确定如何检查以确保它不是空的。任何帮助将不胜感激。
答案 0 :(得分:37)
/^$|\s+/
如果匹配,则为空格或为空。
答案 1 :(得分:14)
大多数正则表达式引擎支持"计数器部分"逃逸序列。也就是说,对于\s
(空格),其对应部分\S
(非空格)。
使用此功能,您可以检查是否至少有一个带有^\S+$
的非空白字符。
PCRE for PHP has several of these escape sequences。
答案 2 :(得分:12)
在我的理解中,你想要匹配一个非空白和非空字符串,所以最好的答案是相反的。我建议:
(.|\s)*\S(.|\s)*
- 这匹配任何包含至少一个非空白字符(中间为\S
)的字符串。它可以在任何内容之前和之后,任何字符或空格序列(包括新行) - (.|\s)*
。
您可以在https://regex101.com/上解释一下。
答案 3 :(得分:5)
我最终使用了与接受的答案类似的东西,只做了一些修改
(^$)|(\s+$)
的解释
Select from 2 alternatives (^$) [1] A numbered captured group ^$ Beginning of line ^ End of line $ [2] A numbered captured group (\s+$) Whitespace, one or more repetitions \s+ End of line $
答案 4 :(得分:1)
答案 5 :(得分:0)
/^$|\s+/
当空白或空白时匹配
/(?!^$)([^\s])/
当它不是空白或空格时会匹配
答案 6 :(得分:-1)
/^[\s]*$/
匹配空字符串和仅包含空格的字符串