Regex всегда меня озадачивал. Я думал, что знаю достаточно, но, пытаясь сделать образец более надежным, я всегда спотыкался, что я не знаюJava Regex для появления ключевого слова позади или после другого ключевого слова
В java, скажем, у меня есть слово «BSD». И я хотел бы обнаружить любое предложение, которое имеет слово «лицензия» до или после слова «BSD». Слово «лицензия» является обязательным. Как это сделать в Java Regex?
Это, насколько я знаю.
String REGEX = "(?i)(GNU)(\\s)+(license)?";
String contents1 = "This file is using GNU license.";
m = Pattern.compile(REGEX).matcher(contents1);
m.find();
System.out.println(m.group());
String contents2 = "This licensed using GNU version 2 .";
m = Pattern.compile(REGEX).matcher(contents2);
m.find();
System.out.println(m.group());
Итак, вы хотите совместить строку, содержащую слова 'license' и' GNU' в любом порядке? Например. 'String REGEX ="^(? =. * Лицензия). * GNU ";'? –
Вы имели в виду GNU? –
См. Http://ideone.com/ZLekGX –