2012-09-24 63 views

回答

13

爲什麼需要使用正則表達式?

str.trim().isEmpty() 
+0

天才和簡單! TNX! –

+0

好吧,我做了一點點另一種方式 - str.replace(「」,「」),然後isEmpty() –

2

假設你的意思是任何空格,而不僅僅是空格,\S將起作用。

CFR每個Dev的必須具備的朋友,The regex cheat sheet

+0

字段可能是「你好,我」但不能是「」。它可以包含空格但不僅包含空格 –

+0

@KirillBazarov:如果您的字符串匹配\ S,這意味着它至少有一個字符不是空格。它仍然可以包含空格。 –

+0

@DanielHilgarth的確如此。我認爲這就是OP所要求的。 –

1

模式匹配一​​個或多個空格。

if (str.matches("[ ]+")) { 
    // Intercept invalid field here ... 
} 
+0

我的回答有什麼問題? OP問一個正則表達式只匹配空格...... – Stephan

+0

如果我理解正確,他想要一個正則表達式匹配** NOT **只包含空格的東西。我不是那個低調的人,雖然... – Alderath

+0

@Alderath那麼如果字段匹配模式,那麼OP可以在應用程序中相應地拋出一條錯誤消息。想帶我回到我的兩點...並恢復你的;) – Stephan

0

你可以使用:

str.matches(".*[\\S].*") 
+0

不應該'+'在sqaure括號後面嗎? – Alderath

+0

這兩個實際工作。 – Reimeus

+0

嗯......但它仍然有點愚蠢......字符組「[\ S +]」的意思是「任何非空白字符或加號」。寫作很奇怪。如果是這樣,你可以把+符號全部放在一起......作爲我的意思的一個例子:模式'^ [a +] $'將匹配字符串「a」或字符串「+」 「,但它不會匹配字符串」'aa'「。 – Alderath

2

您必須使用此模式。

.*[^ ].* 

它可以是任何東西,但不是唯一的空間。

+0

在JavaScript中,這個正則表達式根本不允許任何空格 – Niklas

0

這非常簡單。如果您使用的是java,只需編碼即可。 作爲例子: - 。

classVariable.getname()修剪()等於( 「」)

通過這個你可以檢查變量是否只包含空格。