Я думаю, это то, что вы ищете:
trimUrl = monitorUrl.replaceAll("(?:stats|monitor)\\.jsp", "ping");
Объяснение:
replaceAll()
трактует первый аргумент как регулярное выражение, тогда как replace()
обрабатывает это как буквальную строку.
Вы используете круглые скобки, а не квадратные скобки, чтобы сгруппировать вещи.(?:...)
является не захватывающей формой группы;Вы должны использовать форму захвата - (...)
- только тогда, когда вам действительно нужно захватить что-то.
.
- метасимвол, поэтому вам нужно экранировать его, если вы хотите сопоставитьбуквальная точка.
И, наконец, вам не нужно отдельно проверять наличие строки часового;если его там нет, replaceAll()
просто возвращает исходную строку.В этом отношении, так же replace()
;Вы могли бы также сделать это:
trimUrl = monitorUrl.replace("stats.jsp", "ping")
.replace("monitor.jsp", "ping");