Я просматриваю упражнения Java CodingBat. Here это один я только что закончил:Regex для замены определенных символов до и после определенной подстроки
Учитывая строку и непустую строку слова, возвращает строку, изготовленную из каждого полукокса непосредственно перед и сразу после каждого появления слова в строке. Игнорируйте случаи, когда нет символа до или после слова, и символ может быть включен дважды, если он находится между двумя словами.
Мой код, который работает:
public String wordEnds(String str, String word){
String s = "";
String n = " " + str + " "; //To avoid OOB exceptions
int sL = str.length();
int wL = word.length();
int nL = n.length();
int i = 1;
while (i < nL - 1) {
if (n.substring(i, i + wL).equals(word)) {
s += n.charAt(i - 1);
s += n.charAt(i + wL);
i += wL;
} else {
i++;
}
}
s = s.replaceAll("\\s", "");
return s;
}
Мой вопрос о регулярных выражениях. Я хочу знать, выполнено ли это с помощью выражения regex, и если да, то как?
Эта проблема может быть трудно решить с помощью регулярных выражений Java, поскольку совпадения могут пересекаться, например. 'abcXY1XYijk' на' XY' будет иметь 'cXY1' и' 1XYi' как группы. –
Большой вопрос, кстати^^ –
добавить ввод и ожидаемый выход – vks