regexp_replace получает определенный символ после одинарных кавычек и пробела - PullRequest
0 голосов
/ 14 ноября 2018

Я не так хорош в регулярных выражениях, но я хочу поймать определенное слово после Info_type, поэтому результат будет DATABASE или APPLICATION или MOBILE.

пример:

Flyfast,unix.system,1-1-1,""Table X"" D-Day=""Flood"" id =123123PTIWQ Type='A' info_name=""Fast""  Info_type="""DATABASE""" Starting="10:00:10" Ending=""0000"" Comments="""NONE"""

Flyfast,unix.system,1-1-1,""Table X"" D-Day=""Flood"" id =123123PTIWQ Type='A' info_name=""Fast""  Info_type="""APPLICATION""" Starting="07:00:30" Ending=""0000"" Comments="""NONE"""

Flyfast,unix.system,1-1-1,""Table X"" D-Day=""Flood"" id =123123PTIWQ Type='A' info_name=""Fast""  Info_type="""MOBILE""" Starting="02:00:20" Ending=""0000"" Comments="""NONE"""

Flyfast,unix.system,1-1-1,""Table X"" D-Day=""Flood"" id =123123PTIWQ Type='A' info_name=""Fast""  Info_type="""DATABASE""" Starting="00:00:10" Ending=""0000"" Comments="""NONE"""

редактирование:

У меня есть другие данные, подобные этому:

Flyfast,unix.system,1-1-1,""Table X"" D-Day=""Flood"" id =123123PTIWQ Type='A' info_name=""Fast""  Info_type="""DATABASE A""" Starting="00:00:10" Ending=""0000"" Comments="""NONE"""

Я пытался SELECT REGEXP_REPLACE(name, '(.*)(Info_type\=)') FROM TAB1

1 Ответ

0 голосов
/ 14 ноября 2018

Вот как извлечь слово, и я предполагаю, что оно всегда заключено в тройные кавычки

SELECT REGEXP_REPLACE(name, '^.*Info_type="""([A-Z ]*)""".*', '\1') 
FROM tab1

Обновление

Эта версия более гибкая и допускает 1-3 кавычки вокруг слова

SELECT REGEXP_REPLACE(name, '^.*Info_type=["]{1,3}([A-Z ]*)["]{1,3}.*', '\1') 
FROM tab1

Обновление 2 Разрешено, чтобы слово содержало пробел

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