How to escape text for regular expression in Java?
Как экранировать текст для регулярного выражения в Java?
Есть ли в Java встроенный способ экранирования произвольного текста, чтобы его можно было включить в регулярное выражение? Например, если мои пользователи вводят "$5", я бы хотел точно соответствовать этому, а не "5" после окончания ввода.
s.replaceFirst(Pattern.quote("text to replace"), Matcher.quoteReplacement("replacement text"));
Ответ 3
Возможно, отвечать слишком поздно, но вы также можете использовать Pattern.LITERAL, который будет игнорировать все специальные символы при форматировании:
Pattern.compile(textToFormat, Pattern.LITERAL);
Ответ 4
Я думаю, что вам нужно \Q$5\E. Также смотрите Pattern.quote(s) представлен в Java5.