Я пытаюсь пройти через документ и изменить все экземпляры имени, используя регулярные выражения в Java. Мой код выглядит примерно так:Regex заменить слово при сохранении пробелов/пунктуации
Pattern replaceWordPattern = Pattern.compile("(^|\\s)" + replaceWord + "^|\\W");
следуют:
String line = matcher.replaceAll("Alice");
Проблема заключается в том, что это не сохраняет пробелы и знаки препинания и другие символы, не слова, которые следовали. Если бы у меня был «Джек прыгнул», он становится «Алисидженд». Кто-нибудь знает, как это исправить?
Ваш синтаксис регулярного выражения неверен, он должен быть '(...)' не классом символов. Также это не будет соответствовать тому, что происходит после OP. – hwnd