Я использую Matcher
, чтобы найти конкретные шаблоны в String
, который содержит текст.
Регулярное выражение проверяет различные шаблоны, например, для простоты:
\\bword1\\b|(\\b(?:word2(?:(\\s+)word3)?)?)
и т. Д.
В любом случае, я могу найти шаблоны в строке.
Пока все хорошо.
Что я хочу, так это возможность использовать Matcher.replaceAll
для замены каждого найденного шаблона, на тот же шаблон , но с некоторым дополнением.
например.
Если совпадение находит где-то word1
, я хочу заменить его на {v}word1{v}
.
Как это лучше всего сделать? Я попытался добавить группы, которые находит совпадение, в список, а затем перебрать строку ввода, чтобы заменить все, но, очевидно, это не сработало.
UPDATE:
Я могу соответствовать условиям, которые мне нужны, и @Luis regex заменяет их, но мне нужно заменить all в моей строке.
Зацикливая и выполняя регулярное выражение "pattern", "{v}$0{v}")
внутри строки, я нарушаю предыдущие вхождения. Мне нужно как-то включить отрицательный взгляд назад в replaceAll, чтобы понять, когда термин уже заменен
UPDATE:
Используя регулярное выражение @Luis и отрицательный взгляд, это сработало