Got эта строка:Регистрация двух регулярных выражений или сделать то же самое в то же регулярное выражение
<td>26/02/2015</td><td>09:00</td><td>26/02/2015</td><td>12:00</td><td>3</td><td>I1/121</td><td>10074 codification</td><td>103126 Codification, Cooperation and development - 11</td><td>Walter Shelter, Mary; Johnson Smith, Robert; Dickinson Queen Patty</td><td>without group</td>
И я хочу, чтобы извлечь следующую информацию:
02 103126-11 Walter Johnson Dickinson
Я могу понять, как получить 02 103126-11 Walter
часть с регулярным выражением:
$nodup_filtertoexec = preg_match('/\d{2}\/(\d{2})\/\d{4}.*?\d+\s.*?(\d+)\s.*?-\s(\d+).*?(?:.*?<td>){1}([a-zA-ZñÑ]+).*/m', $filtered, $matches);
Таким образом, проблема, я не могу понять, как получить первое значение фамилии часть адреса очень второе значение до ;
.
Вот ссылка на regex101 с фактическим регулярное выражение regex to get 02 103126-11 Walter values
Регулярное выражение, чтобы получить три фамилий:
(?:(?<=^)|(?<=;))\w+
Вот regex101 пример:
regex to get the Walter Johnson Dickinson values
Так это было бы хорошо знать, как присоединиться к двум выражениям регулярных выражений в одном.
UPDATE: Вот моя последняя попытка, не работает, как ожидалось еще. Только нужно знать, как итерировать последнюю часть регулярного выражения, чтобы получить «Proof» и «Prooftwo» или «Proofthree» (если есть) и т. Д. Из html. Любая помощь будет оценена.
Я тестировал (? < =;) и (? =;) Без везения.
https://regex101.com/r/oQ1fJ1/4
Вы не можете получить данные непосредственно из источника? Извлечение материала из HTML может быть утомительным и, если оно изменено, даже ненадежным. –
@ SverriM.Olsen благодарит за ваш ответ. Материал из HTML не изменится, но будет меньше или больше значений фамилий. Например: Уильямс Смит, Тимоти; Дойл Бирн, Самуил; Туле Мерфи, Александра; Мюррей Нейл, Джек; Cullen Farrell, Jayden – user3321425