“包含不仅是空格” 的正则表达式模式

3

请告诉我,如果字段不能只包含空格,我需要使用哪种模式。


"\s+" 的意思是 "一个或多个任意类型的空格符号"。 - duffymo
大小写非常重要。已经更正。 - duffymo
没有人理解我的问题。 - user1679671
5个回答

15

为什么需要使用正则表达式?

str.trim().isEmpty()

这会生成一个字符串对象的副本,不确定它是否比正则表达式更高效。 - Jean-François Fabre

15

你必须使用这种模式。

.*[^ ].*

它可以是任何东西,但不仅限于空格。


在 JavaScript 中,这个正则表达式不允许任何空格。 - Niklas
你可能需要添加一个 / /g 标志,但这是最简单的答案。 - Beerswiller

2
我有一个,看起来很重,但实际上并不难实现。
没有空白的模式:
^[pattern]\*[pattern without space][pattern]*$

例子:

-pattern: a-zA-ZÀ-ÿ '\-

请注意,它允许空格
[a-zA-ZÀ-ÿ '\-]

没有空白 =
^[a-zA-ZÀ-ÿ '\-]\*[a-zA-ZÀ-ÿ'\-][a-zA-ZÀ-ÿ '\-]*

当然,如果你根本不允许有空格,那就不需要这样做。
你可以在https://regexr.com/上测试你的正则表达式。

2
假设您指的是任何空格,而不仅仅是空格,\S 将起作用。
每个开发者必备的好朋友——正则表达式速查表,详情请见此处

字段可以是“Hi i am”,但不能是“ ”。它可以包含空格,但不能只包含空格。 - user1679671
@KirillBazarov:如果你的字符串与\S匹配,这意味着它至少有一个不是空格的字符。它仍然可以包含空格。 - Daniel Hilgarth
@DanielHilgarth 确实。我认为这就是原帖所问的。 - Joeri Hendrickx

0

这很简单。如果你正在使用Java,只需编写以下代码。 例如:

classVariable.getname().trim().equal("")

通过这个方法,你可以检查变量是否只包含空格。


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