У меня есть строковое выражение, из которого мне нужно получить некоторые значения. Строка выглядит следующим образомJava regex matcher всегда возвращает false
#min({(((fields['example6'].value + fields['example5'].value) * ((fields['example1'].value*5)+fields['example2'].value+fields['example3'].value-fields['example4'].value)) * 0.15),15,9.087})
С этой stribg, мне нужно, чтобы получить список массив строк, содержащий значения, такие как «example1», «example2» и так далее.
У меня есть метод Java, который выглядит следующим образом:
String regex = "/fields\\[['\"]([\\w\\s]+)['\"]\\]/g";
ArrayList<String> arL = new ArrayList<String>();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(expression);
while(m.find()){
arL.add(m.group());
}
Но m.find()
всегда возвращает false
. Есть что-то, чего я не хватает?
Вы не используете синтаксис '/.../ g' в Java regex. Они представляют собой разделитель регулярных выражений на других языках, что не обязательно в Java. Удалите их, и ваше регулярное выражение будет работать правильно. – nhahtdh