Никак не получается сделать так, чтобы можно было заменить только часть найденного соответствия. Методы:
| Код | String.replaceFirst(String regexp,String replacement) String.replaceAll(String regexp,String replacement)
|
заменяют полностью regexp на replacement. А мне нужно только то, что попало в группировку из regexp. К примеру дана строка:
| Код | "< cat >one cat two cats in the yard< cat >"
|
Нужно заменить cat на dog только внутри < cat >...< cat >
| Код | Pattern p = Pattern.compile(">[a-z ]*(cat)"); Matcher m = p.matcher("< cat >one cat two cats in the yard< cat >"); if (m.find()) System.out.println(m.replaceAll("dog")); ;
|
В результате получается, не то что хочется увидеть:
| Код | < cat dogss in the yard< cat >
|
|