2012-08-30 44 views
0

如果模式匹配或執行另一個代碼塊(如果模式不匹配),我將如何執行一段代碼?模式可能不匹配時的java正則表達式

String input = "abc"; 

final String mainRegex = "(.*?)(&!|&|==)"; 

final Matcher matcher = Pattern.compile(mainRegex).matcher(input); 


我已經試過

if(matcher1.matches()) 
{ 
    execute this block 
} 

else 
{ 
    execute this block 
} 

但它總是執行else塊。即使輸入是a>b&!c<d

+3

我建議用像http://regexpal.com/工具測試您的正則表達式。如果匹配器不斷告訴你輸入與正則表達式不匹配,這可能意味着你的輸入都不匹配正則表達式。 –

回答

6

你的代碼是正確的,但是你的正則表達式是錯誤的。它不符合你的任何一個例子。

也許你可以試試這個正則表達式來代替:

final String mainRegex = "(.*?)(&!|&|==)(.*)"; 

看到它聯機工作:ideone