2012-11-22 71 views
0

我是新來的正則表達式。我認爲這將返回matched succesfully,但它不會。爲什麼?正則表達式匹配中的問號不起作用

String myString = "SUB_HEADER5_LABEL"; 
if (myString.matches(Pattern.quote("SUB_HEADER?_LABEL"))) 
{ 
    System.out.println("matched succesfully"); 
} 
+4

你爲什麼使用'Pattern.quote'?只要刪除它。 –

+0

正則表達式在這裏?哪裏? – bonCodigo

回答

4

Pattern.qoute()將創建一個只匹配給定的字符串完全的模式。你需要

if (myString.matches("SUB_HEADER\\d_LABEL")) 

如果您預計數量將超過9,加樣

if (myString.matches("SUB_HEADER\\d+_LABEL")) 

+量詞,如果你想匹配,你有?(至極是指一個或零R一個數字你情況,因爲它是一個量詞)。您需要用[0-9]\\d來替換它。

+0

刪除Pattern.quote並替換?與[0-9]它的工作。 – Mahendran