RegEx для извлечения нескольких слов в отрывке с использованием таблицы - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть отрывок, и мне нужно извлечь пару слов из него в таблице. Отрывок приведен ниже:

Это похоже на подозрительный аккаунт. Пожалуйста, посмотрите на детали ниже. Имя: Джон Мэтью Электронная почта: john.mathew@abc.com Телефон: +1 111-111-1111 Отдел: abc

Для получения дополнительной информации обращайтесь: ----

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

regexp_extract([CASE DESCRIPTION],'Department : (.+)')

Когда я применяю это имя, я получаю:

Имя: Джон Мэтью Электронная почта: john.mathew@abc.com Телефон: +1 111-111-1111 Отдел: abc

вместо только имени. То же самое происходит с электронной почтой.

Как мне решить эту проблему?

1 Ответ

1 голос
/ 25 апреля 2019

Мне кажется, проблема в том, что у вашего регулярного выражения просто есть (. +) В качестве группы захвата, что в основном означает «все» (после указанной строки). Поскольку все поля находятся в одной строке, все после «имени» включает адрес электронной почты, телефон и отдел. (Регулярное выражение работает с отделом, потому что это последнее на очереди.)
Таким образом, чтобы все работало правильно, вам нужно дать вашему регулярному выражению нечто иное, чем конец строки, чтобы остановиться. Чтобы захватить только имя, вам нужно остановиться перед тегом Email и так далее вниз по списку. Что-то вроде

Name = regexp_extract([CASE_DESCRIPTION],'Name: (.+) Email:')  
email = regexp_extract([CASE_DESCRIPTION],'Email: (.+) Phone:')
phone = regexp_extract([CASE_DESCRIPTION],'Phone: (.+) Department:')
department = regexp_extract([CASE_DESCRIPTION],'Department: (.+)')
...