#python #regex #regex-group #zapier
#python #регулярное выражение #регулярное выражение-группа #zapier
Вопрос:
Я работаю над созданием пользовательского рабочего процесса с использованием zapier. Требуется проанализировать данный текст с помощью zapier formatter, который использует регулярное выражение Python.
Регулярное выражение Python, которое я использую, является
(?P<action>My-DATA)s :desc:(?P<desc>.*):s :priority:(?P<priority>.*):s :label:(?P<lbl>.*):
Для входящего текста
My-DATA :desc:I would like to get details from https://mydata.org/this-is-my-data: :priority:3: :label:data:
Есть пара вещей, которые я не могу понять, как я могу достичь. Каждый раздел разделяется с помощью :
, а имя раздела также переносится в :
Иногда случается так, что текст будет вводиться без окончания :
для раздела, подобного этому My-DATA :desc:I would like to get details from https://mydata.org/this-is-my-data :priority:3 :label:data
Этот текст отсутствует :
в конце каждого раздела, но каждый новый раздел всегда начинается с :
, за которым следует название раздела.
Я пытаюсь определить регулярное выражение, которое все еще может работать как это, с окончанием раздела или без него :
Рабочий пример регулярного выражения находится по адресуhttps://regex101.com/r/T2UJcP/2
Любая помощь будет оценена.
Ответ №1:
(?P<action>My-DATA)s :desc:(?P<desc>.*?):?s :priority:(?P<priority>.*?):?s :lbl:(?P<lbl>.*?):?s*$
Ответ №2:
Вы можете добавить :?
в конец каждого раздела, который будет указывать, что конечное двоеточие необязательно. Оно может соответствовать ему, есть оно там или нет.
(?P<action>My-DATA) :desc:(?P<desc>. ):?s :priority:(?P<priority>. ):?s :label:(?P<lbl>. ):?
Комментарии:
1. Я пробовал это, но происходит то, что
:
становится частью текста раздела. Проверьте это. Пожалуйста, проверьте это regex101.com/r/T2UJcP/42. Как насчет использования
*
, которое может быть 0 или более? regex101.com/r/T2UJcP/5