2015-01-15 49 views
-1

我想檢查我的字符串是否只包含允許的字符。一切工作正常,例如7B,77B7BBBB,但是當我輸入像這樣的7B77BB2它不匹配。模式(字符串)只允許字符一次

一切工作正常,但當整數是最後一個字符它不工作。

你能告訴我那段代碼有什麼問題嗎?

pattern = Pattern.compile("[0-9]*[a-f]*[A-F]*"); 
matcher = pattern.matcher(stNumber); 
if (matcher.matches()) {...} 
+0

什麼確切的規則是你想匹配?這聽起來像你不需要正則表達式,如果你正在進行驗證。 – Kon 2015-01-15 18:16:41

回答

2

如果你想在你需要某事喜歡各種以混合數字和字符:

Pattern pattern = Pattern.compile("[\\da-fA-F]*") 
+1

謝謝,它的工作完美;) – 2015-01-15 18:24:46

+0

如果答案奏效,請選擇它是正確的。這樣,人們就可以找到相同的問題,你會獎勵那些花時間和神經元來幫助你的人。 – 2015-01-15 18:27:52

+0

我知道,但在激活此選項後,我需要等待幾分鐘。 – 2015-01-15 18:29:43

0

爲什麼不試試這樣說?

// Compile this pattern. 
Pattern pattern = Pattern.compile("[0-9]*[a-f]*[A-F]*[0-9]*"); 

// See if this String matches. 
Matcher m = pattern.matcher("num123"); 
if (m.matches()) { 
    System.out.println(true); 
} 

Source

0

你們是不是要驗證字符串只有數字和字母,沒有別的?

如果是的話請嘗試使用以下:

pattern = Pattern.compile("^[a-z-A-Z\\d]*$"); 
matcher = pattern.matcher(stNumber); 
if (matcher.matches()) {...}