Oracle регулярное выражение: \ Q \ E не работает - PullRequest
1 голос
/ 03 марта 2010

Я обнаружил, что \Q\E не работает в оракуле.
Какое эквивалентное выражение \Q\E для регулярного выражения оракула?

Ответы [ 3 ]

5 голосов
/ 03 марта 2010

В Perl, \Q запускает автоматическое экранирование специальных символов и \E останавливает это поведение. Таким образом, внутри блока \Q \E точка будет рассматриваться как буквальная точка, а не как любой символ.

Если Oracle не поддерживает это, просто удалите любые специальные символы, которые были бы в блоке.

0 голосов
/ 13 сентября 2013

Это старая, но все еще проблема в Oracle Database 11g Release 11.2.0.1.0, и я не вижу ее в другом месте. Поэтому, если это помогает другим, мое решение:

выберите манекен из двойного где REGEXP_LIKE (пустышка, REGEXP_REPLACE ('X', '([] \ ^. $ | () [* +? {},])', '\\\ 1'))

0 голосов
/ 11 января 2013

Это старый вопрос, но с Java вы можете сделать

Pattern.quote(yourString);

, который возвращает буквальную строку.Таким образом, строка . вернет \Q.\E, что будет считаться периодом для Matcher.

...