Чтобы перевести это регулярное выражение для использования в Java, все, что вам нужно сделать, это избавиться от разделителей /
и заменить конечный i
на встроенный модификатор (?i)
.Но это не очень хорошее регулярное выражение;Я бы использовал это вместо:
(?i)word(?![^<>]++>)
В соответствии с функцией отладки RegexBuddy, когда он пытается соответствовать word
в <a href="word">
, исходное регулярное выражение требует 23 шага, чтобы отклонить его, в то время как этот требует толькосемь шагов.Фактический код Java
str = str.replaceAll("(?i)word(?![^<>]++>)", "repl");