我正在通過eclipse調試器運行一些代碼,a[1].matches("[a-zA-Z]")
不等於true
當a[1] = "ABCD"
(a
是一個字符串數組)。Java string.matches()返回錯誤的語句
我讀過matches
和[a-zA-Z]
的Javadoc應該是一個有效的正則表達式。
任何人都知道我要去哪裏錯了嗎?
我正在通過eclipse調試器運行一些代碼,a[1].matches("[a-zA-Z]")
不等於true
當a[1] = "ABCD"
(a
是一個字符串數組)。Java string.matches()返回錯誤的語句
我讀過matches
和[a-zA-Z]
的Javadoc應該是一個有效的正則表達式。
任何人都知道我要去哪裏錯了嗎?
這對於'a [1] ==「」'也是合適的[[這可能是也可能不是OP所要的,你從這個問題中不能判斷]。 – amit
@amit - 我已經更新了我的答案,其中包括一些示例。 –
我覺得應該是a[1].matches("[a-zA-Z]*")
[a-zA-Z]
將只接受單個字母。您可能需要[a-zA-Z]*
。
嘗試a[1].matches("[a-zA-Z]+")
。它說「一個或多個字符」必須匹配而不是隻有一個字符。
注意,而不是「+」匹配「零個或多個字符,因此它將匹配空字符串(可能不是你想要的)。
的原因,你沒有匹配的是字符串「*」是你的正則表達式表達試圖只是一個單一的字符匹配試試這個:
a[1].matches("[a-zA-Z]*")
a[1].matches("[a-zA-Z\\s]+")
可以幫助
'[A-ZA-Z]'可以匹配該範圍內的任何單個字符。您需要添加限定詞a例如'*'(0或更多)或'+'(1或更多)。 – ean5533