IntelliJ IDEA: регулярное выражение для удаления синтаксиса Oracle to_timestamp - PullRequest
1 голос
/ 16 января 2010

Я пытаюсь найти выражение поиска / замены, которое преобразует вставки в стиле Oracle с полями отметок времени для вставки операторов для другой базы данных.

По сути, я хочу преобразовать строки вроде:

to_timestamp('13-SEP-09 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')

просто:

'13-SEP-09 12.00.00.000000000 PM'

Я пробовал несколько выражений в окне поиска / замены IDEA, но все еще не могу получить его. Вот этот:

to_timestamp(.[^,]*,.[^)]*)

, замененный на $ 1, в итоге соответствует строке, которую я хочу, за исключением закрывающей скобки, но затем удаляет только первую часть. Я заканчиваю с:

('13-SEP-09 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')

Я действительно не понимаю, что здесь происходит.

1 Ответ

4 голосов
/ 16 января 2010

Похоже, что вы хотите:

to_timestamp\(('[^']*')[^)]*\)

Разбивка:

to_timestamp очевидно

\( соответствует открытию

( начинает захват

'[^']' соответствует первой строке в кавычках

) прекращает захват

[^)]*\) соответствует оставшемуся тексту

Если вы соответствуете всей строке, а не только части большого текста, вы можете использовать .* вместо [^)]*\) для последней части; вам действительно все равно, что будет после закрытия '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...