Значение регулярного выражения из поля ввода не работает для формата даты

#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 и не жадный (среднее значение будет иметь первое вхождение)

ДЕМОНСТРАЦИЯ