preg_match для HTML 5 <time datetime = "xxxx-xx-xx"> - PullRequest
0 голосов
/ 24 января 2012

Как мне сформулировать шаблон, чтобы я мог извлечь XXXX-XX-XX из временного тега?

Строка, которую я ищу в строке $, выглядит так:

<time datetime="XXXX-XXX-XX" itemprop="birth">

И я хочу извлечь часть:

XXXX-XX-XX

У меня есть это, но оно не работает:

preg_match('\<time datetime="d{4}-d{2}-d{2}"',$string,$date);
echo $date[0] . "<br />";

Я нахожу выражения регулярных выражений чертовски запутанными ... любая хорошая учебная рекомендация также была бы великолепна! Цените свое время и помощь.

Приветствия

Ответы [ 3 ]

3 голосов
/ 24 января 2012

Вам нужно использовать \d вместо просто d.

Также вам нужно заключить регулярное выражение в пару разделителей.

Как:

preg_match('/\<time datetime="\d{4}-\d{2}-\d{2}"/',$string,$date);
2 голосов
/ 24 января 2012

Вы забыли разделители, некоторые побеги и группу захвата:

preg_match('/<time datetime="(\d{4}-\d{2}-\d{2})"/',$string,$date);
echo $date[1] . "<br />";
1 голос
/ 24 января 2012

Ваш шаблон нуждается в /../

preg_match('/\<time datetime="d{4}-d{2}-d{2}"/',$string,$date);

Edit: Посмотри ответ Тима, тебе тоже нужна группа захвата.

...