Измените начальные и конечные символы '/'
на '"'
, а затем замените каждый '\'
на "\\"
.
В отличие от Javascript, Perl и других языков сценариев, Java не имеетспециальный синтаксис для регулярных выражений.Вместо этого они (как правило) выражаются с использованием строковых литералов Java.Но '\'
является escape-символом в строковом литерале Java, поэтому каждый '\'
в исходном регулярном выражении должен быть экранирован со вторым '\'
.(И если у вас есть литеральный символ обратной косой черты в регулярном выражении, вы получите "\\\\"
в строковом литерале Java !!)
Это немного сбивает с толку / устрашает новичков в Java ... но этосовершенно логично.Просто помните, что вы используете строковый литерал Java для выражения регулярного выражения.
Однако, как отмечает @antak, между языками регулярных выражений в Java и Javascript существуют различные различия.Поэтому, если вы берете регулярное выражение Javascript и транслитерируете его на Java, как указано выше, это может не сработать.
Вот несколько ссылок, которые суммируют различия.
https://gist.github.com/CMCDragonkai/6c933f4a7d713ef712145c5eb94a1816