Ну, это немного зависит от вашей инфраструктуры.По сути, ваш Regex будет выглядеть примерно так (предполагается синтаксис .NET):
"Job Name:\\s*([^,]*)"
Это будет захватывать строку «JobName:», за которой следует любое количество пробелов.Затем у нас есть группа захвата любого количества символов, которые не являются запятыми ([^,] *).Используя это, вы можете запустить соответствующий процесс, который даст вам все строки, которые вы хотите в первой группе захвата.
Вот тут и вступает инфраструктура. Нужно ли вам это в контексте .NET или JavaScriptили PHP, или что-то еще?Команды будут различаться в зависимости от используемой технологии.
ОБНОВЛЕНИЕ 1: (код Perl)
$s = "$VAR = [1550181700, '\"xyz (gmail.com)\" ', 'Hi Team,Please ON HOLD,HostName: kmkkmk.abc.com,Job Name: dat-inh-ndw-q9n580_prd106.f,Job Name: dat-inh-rdm-q9n717_jdapfrdly.b,Job Name: dat-inh-rdm-q9n717_jdapfrdly.b,regards,DSG Team']";
@jobNames = [];
while($s =~ /Job Name:\s*([^,]*)/gi) {
push @jobNames, $1;
}
Это даст вам все имена, которые вам нужны в @массив jobNames.Однако, если вам нужно только регулярное выражение в качестве параметра для вашей функции, нам, вероятно, потребуется немного его изменить.
ОБНОВЛЕНИЕ 2: (с использованием утверждения lookbehind)
На самом деле вы можете искать так называемое утверждение о нулевой ширине.Он определяет образец для сопоставления, но НЕ включается в результат.Тогда регулярное выражение будет выглядеть так:
/(?<=Job Name: )[^,]*/
Конструкция (?<=...)
указывает регулярному выражению совпадать только со следующим шаблоном, если ему предшествует то, что определено в скобках, в вашем случае «Job»Название: ".Однако это НЕ должно быть включено в результат.Таким образом, только остальная часть шаблона будет частью вашего результата.
ПРИМЕЧАНИЕ. Возможно, вы заметили, что я заменил конструкцию \s*
после двоеточия на обычный пробел.Это связано с тем, что моя онлайновая игровая площадка на Perl вызвала ошибку «Переменная длина, не реализованная в регулярных выражениях» при использовании конструкции \ s *.Однако это может сработать в вашей реализации perl.Если вы уверены, что после двоеточия всегда будет ровно один пробел, вы можете просто пойти дальше и использовать один пробел.