2017-11-11 118 views

回答

3

問題:你的正則表達式試圖在開始和結束時

在java中有前後正則表達式所以用不用的/java!=javascript

"^[0-9A-Za-z\\s-]+$" 

^[0-9A-Za-z\\s-]+$匹配/符號: ^開始比賽

[0-9A-Za-z\\s-]+:一個或多個字母,數字,空格和-

$:比賽

+0

感謝您的答案,順便說一句,我沒有投票你的答案:)我從來沒有這樣做過。 – SAR

+0

@SAR我很高興,我可以幫助,我永遠不會這麼做:) –

+0

sidenote:請注意回答和評論之間的時間範圍 –

0

您是接近,但需要做出兩個改變的結束。 第一個是雙逃逸(即使用\\而不是\)。這是由於Java的怪異(請參見Javadoc for the Pattern class中的「反斜槓,轉義和引用」一節)。第二件事是刪除顯式引用到字符串的開始和結尾。這在使用matches()時會被隱含。所以,正確的Java代碼

String regex = "[0-9A-Za-z\\s\\-]+"; 
sampleString.matches(regex); 

雖然這會工作,你也可以替換\ d的「0-9」的參考和下降的轉義「 - 」。這給你

String regex = "[\\dA-Za-z\\s-]+"; 
+1

不是downvoter,但沒有必要逃避' - ',嘗試它,但如果你downvoted,因爲downvoter認爲這是一個錯字,那麼請原諒我說它是由符號構成的正則表達式,很多帖子只會是拼寫錯誤 –

+0

你是對的。我打字速度很快,並將我的答案基於原始海報的正則表達式。我的壞:)對於這個問題,如果清理,那麼0-9可以被\\ d替換。 –

+1

你可以隨時編輯你的答案,繼續 –

相關問題