2013-02-13 55 views
4

我有一個數組正則表達式匹配等級

String[] grades = new String[]{"D","C-","C","C+","B-","B","B+","A-","A","A+"}; 

我想檢查一個字符串是否是其中的一個值。

我可以遍歷數組來完成這個任務,但我想通過正則表達式來完成。

+1

我們可以看到一些樣品字符串? – 2013-02-13 13:20:42

+0

我們可以看到一些問題嗎? – fdreger 2013-02-13 13:21:47

回答

12

的正則表達式是相當簡單:

[A-C][+-]?|D 

第一部分說,A通過C可以後跟可選的加或減;第二部分本身允許D

我可以遍歷數組來完成這個

你也可以使用,這樣做沒有環:

if (Arrays.asList(grades).contains(grade)) { 
    ... 
} 
+0

我是否需要添加反斜槓才能在java中轉義任何內容? 'String regex =「[A-C] [+ - ]?| D」'這樣好嗎? – atripathi 2013-02-13 13:28:07

+0

@atripathi我不認爲你需要逃脫任何東西,正則表達式應該沒問題。看一看:[鏈接到一個愚蠢的例子ideone](http://ideone.com/hBjRLY)。 – dasblinkenlight 2013-02-13 13:31:32

+0

@dasblinkenlight如何保持輸入只有A或B或C,單個字符的驗證? – 2016-05-11 07:16:35