2011-10-27 53 views
0

我有這個正則表達式[a-zA-Z]\d\d\\$\d\d-\d\d\d\d和我的價值是A11$12-9190。但它不匹配。任何線索?正則表達式不工作在java

+0

該正則表達式無效。 –

+0

你使用的是什麼實際的Java字符串? – millimoose

+0

在$到達字符串末尾之前,您正在轉義\,但之後您正在搜索更多數字。不可能。 – FailedDev

回答

4

每個反斜槓\都必須以java模式中的額外反斜槓\\進行轉義。請注意,美元符號前的反斜槓已經被轉義。

產生的正則表達式是:

[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d 
0

你逃避所有的\?如果你有一個字符串,你必須做"\\d"

1

您的正則表達式無效。例如,

String test = "A11$12-9190"; 
    String regex = "[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d"; 

    System.out.println(test.matches(regex)); 
2

基本上發生了什麼是Java假設你的\ d是String轉義字符,你需要把它改造成\\ d - 第一\逃脫逃脫了第二\ d爲正則表達式!