我想要正則表達式值沒有空格(^[\S]*$
),只包含字母(\w+
)。但我如何將這兩個結合到一個正則表達式?如何正則表達一個不包含空格的單詞?
預期的結果應該是:
oneword: true
one word: false
1word: false
我想要正則表達式值沒有空格(^[\S]*$
),只包含字母(\w+
)。但我如何將這兩個結合到一個正則表達式?如何正則表達一個不包含空格的單詞?
預期的結果應該是:
oneword: true
one word: false
1word: false
我猜你可能要像(如果空字符串是有效的):
^[A-Za-z]*$
\w
包含數字和_
了,所以這將匹配1word
。
匹配字母只有這個正則表達式就足夠了:
^[a-zA-Z]+$
\w
意味着字母,數字和下劃線\w
不只匹配字母,但是也匹配數字,下劃線(_
)。只匹配字母,使用方法:
^[A-Za-z]+$
如果你想有一個非正則表達式的解決方案,或許你可以嘗試這樣的事:
public boolean valid(final String string){
for(final char c : string.toCharArray())
if(!Character.isLetterOrDigit(c))
return false;
return true;
}
使用\p{Alpha}
這是一個英文字母:[\p{Lower}\p{Upper}]
隨着你的正則表達式上方,將會\p{Alpha}+
,它匹配一個或多個字母字符。這忽略數字,下劃線,空格等。
欲瞭解更多信息,請參閱部分POSIX字符類(僅美國ASCII)在this document。
+ for non-empty strings :) –