嘗試使用正則表達式來檢測是一個字符串開頭的2個字符後跟一個可選的空格,後面跟一個可選的字母。正則表達式檢查字符串的第一個字符是數字
這是我的嘗試:但似乎並沒有吸引我的測試數據
!string.matches("\\b\\d{2}\\s?[a-Z]?")
測試數據:
23: sentence here
嘗試使用正則表達式來檢測是一個字符串開頭的2個字符後跟一個可選的空格,後面跟一個可選的字母。正則表達式檢查字符串的第一個字符是數字
這是我的嘗試:但似乎並沒有吸引我的測試數據
!string.matches("\\b\\d{2}\\s?[a-Z]?")
測試數據:
23: sentence here
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)
但這種方法檢查嘗試這意味着如果你的字符串很長,並且你只想檢查前幾個字符,效率會很低。
使用matches
,而不是contains
:
!string.matches("^\\d{2}\\s?[a-Z]?.*")
常規表達式是這樣的:
^
搜索字符串的開頭\\d{2}\\s?[a-Z]?
是你的搜索模式.*
允許字符串的其餘部分是什麼看一看的API:
'contains'不使用正則表達式。 – Pshemo
啊,謝謝。你會建議如何在String中找到正則表達式? (對Java來說相當新穎)。 – Josh