#php #regex
#php #регулярное выражение
Вопрос:
У меня есть некоторый html
<td align="middle"><input id="_TEXTBOX_" type="text" value='2020-11-03 07:00:00' class="aukcja_textbox_disabled" readonly></td>
<td align="middle"><input id="_TEXTBOX_" type="text" value='2020-11-27 07:01:00' class="aukcja_textbox_disabled" readonly></td>
<td align="middle"><input id="_TEXTBOX_" type="text" value='WDK' size="8" class="aukcja_textbox_disabled" readonly></td>
<td align="middle"><input id="_TEXTBOX_" type="text" value='20' size="5" class="aukcja_textbox_disabled" readonly></td>
<td align="middle"><input id="_TEXTBOX_" type="text" value='20' size="3" class="aukcja_textbox_disabled" readonly></td>
<td align="middle"><input id="_TEXTBOX_" type="text" value='413' size="3" class="aukcja_textbox_disabled" readonly></td>
Я хочу получить каждое значение из входных данных.
Я делаю это с помощью функции preg_match_all .
preg_match_all('/<input id="_TEXTBOX_" type="text" value=\'([a-z,A-Z,0-9,:,-, ]*)\'/iU',$this->html,$matches);
Но этот код получает только значения из четырех последних входных данных. Он не находит два первых с датами.
Я пробовал выражение (.*), но оно тоже не работает.
Спасибо за ваш совет.
Ответ №1:
попробуйте это регулярное выражение :
(?<=value=').*?(?=')
(?<=значение=’) : среднее значение, приведенное к значению =’
(?=’) : среднее значение, за которым следует ‘
.*? : означает 0 или много символов, кроме n и не жадный (среднее значение будет иметь первое вхождение)