2016-04-11 146 views
0

我想迫使我的測試應用程序動態地創建正則表達式。有什麼辦法可以使它工作嗎?我在問,因爲我嘗試了Pattern.quote()方法,但它根本沒有效果。動態創建正則表達式Java

我把我的正則表達式放在字符串變量當然。它看起來像:

String pattern = "src=\\\"([^\\\"])*\\\\.((jpg)|(png)|(gif))\\\""; 
+1

每次更改字符串的內容時Pattern.compile(你的字符串值)。 .. –

+2

Pattern.quote使正則表達式被逐字解釋,即它使你的字符串是一個非正則表達式。 – dasblinkenlight

+0

事情是,我已經保存文件表達式的枚舉類型和模式必須創建爲什麼應用程序正在運行。 –

回答

0

從構建模式刪除多餘的「\」,並使用Pattern.compilePattern.matcher

 String pattern = "src=\"([^\"])*\\.((jpg)|(png)|(gif))\"";     
     Pattern p = Pattern.compile(pattern); 
     Matcher m = p.matcher("src=\"abc.png\""); 
     if (m.matches()){ 
      System.out.println("Found " + m.group()); 
     }