2016-04-11 5 views
0

Я хочу, чтобы мое тестовое приложение динамически создавало регулярное выражение. Есть ли способ заставить его работать? Я спрашиваю, потому что я пробовал с помощью метода Pattern.quote(), но он не имел никакого эффекта.Динамически созданное регулярное выражение Java

Я поместил свое регулярное выражение в переменную String, конечно. Это выглядит следующим образом:

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

Pattern.compile (ваш строковое значение) каждый раз, когда вы меняете содержимое строки. .. –

+2

Pattern.quote заставляет регулярное выражение интерпретироваться дословно, т. Е. Делает вашу строку не регулярным выражением. – dasblinkenlight

+0

Дело в том, что я сохраняю выражения файлов в типе и шаблоне перечисления, которые должны быть созданы, потому что приложение запускается. –

ответ

0

Удалить лишние «\» из построенного рисунка и использовать Pattern.compile и Pattern.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()); 
     } 
Смежные вопросы