Как удалить символы между одинарными кавычками в pl/sql с помощью regexp_replace

Я хотел бы спросить, есть ли кто-нибудь, кто знает, как удалить символы между одинарными кавычками в pl/sql, используя regexp_replace.

Это было бы так.

The 'quick brown' fox jumps over the lazy dog.
--> The fox jumps over the lazy dog.

The 
'quick
 brown' 
fox jumps over 
'the lazy' dog.
--> The fox jumps over dog.

person jerald garayan    schedule 08.05.2015    source источник


Ответы (2)


select regexp_replace('The ''quick brown'' fox jumps over the ''lazy'' dog', 
                 '''.*?''', '', 1, 0, 'm')
from dual    

ВЫВОД

The fox jumps over the dog

ДЕМО

Подробнее о regexp_replace читайте в документации.

person Nir Alfasi    schedule 08.05.2015
comment
спасибо за быстрый ответ, он работает, однако он не работает, когда между словами внутри одинарных кавычек есть следующие строки. Итак, не могли бы вы проверить, правильно ли я это сделал? -- select regexp_replace('''Быстрая коричневая'' лиса перепрыгивает через ленивую собаку', '''(.|'||chr(10) ||')*?''', '') из двойного - person jerald garayan; 08.05.2015
comment
@jeraldgarayan для многострочных нужно добавить еще 3 аргумента: «1» — начальная позиция для поиска в строке, «0» — количество вхождений для замены (ноль означает все) и «m» — многострочный. Я обновил ответ и демонстрацию выше. - person Nir Alfasi; 09.05.2015

Используйте опцию «match param» для «n» в REGEXP_REPLACE, чтобы указать, что символ «соответствует любому символу» (точка) включает новую строку:

select regexp_replace('The ''quick 
brown'' fox jumps over the lazy dog', '''.*''', '', 1, 0, 'n')
from dual;

https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions137.htm#SQLRF06302

person Gary_W    schedule 08.05.2015