preg_ match for HTML 5<;时间日期时间=“;xxxx-xx-xx”>;


preg_match for HTML 5 <time datetime="xxxx-xx-xx">

如何形成模式,以便从时间标记中提取XXXX-XXX-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 />";

我发现正则表达式太令人困惑了。。。任何好的教程推荐也会很棒!感谢您的时间和帮助。

干杯

您需要使用'd来代替d

此外,您还需要将正则表达式括在一对分隔符中。

类似:

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

您忘记了分隔符、一些转义符和捕获组:

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

您的模式需要/../

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

编辑:看看蒂姆的回答,你也需要捕捉小组。