2015-09-10 112 views
1

嘗試使用正則表達式來檢測是一個字符串開頭的2個字符後跟一個可選的空格,後面跟一個可選的字母。正則表達式檢查字符串的第一個字符是數字

這是我的嘗試:但似乎並沒有吸引我的測試數據

!string.matches("\\b\\d{2}\\s?[a-Z]?") 

測試數據:

23: sentence here 
+0

'contains'不使用正則表達式。 – Pshemo

+0

啊,謝謝。你會建議如何在String中找到正則表達式? (對Java來說相當新穎)。 – Josh

回答

0

contains不使用正則表達式。你可能想創建模式,然後爲每個字符串單獨的匹配器,並檢查它是否可以find您描述的正則表達式。所以,你的代碼可以像

private static final Pattern p = Pattern.compile("^\\d\\d\\s?[a-Z]?"); 
public static boolean test(String str){ 
    return p.matcher(str).find(); 
} 

如果正則表達式的整個字符串,而不只是部分匹配(您可以在此方法重命名爲更具描述性的)


您可以用yourString.matches(regex)但這種方法檢查嘗試這意味着如果你的字符串很長,並且你只想檢查前幾個字符,效率會很低。

相關問題