我如何制定模式,以便从时间标签中提取XXXX-XX-XX?
我在$ string中搜索的行是:
<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 />";
我发现正则表达式如此令人困惑......任何好的教程推荐都会很棒!感谢您的时间和帮助。
干杯
答案 0 :(得分:3)
您需要使用\d
代替d
。
此外,您需要将正则表达式括在一对分隔符中。
像:
preg_match('/\<time datetime="\d{4}-\d{2}-\d{2}"/',$string,$date);
答案 1 :(得分:2)
你忘记了分隔符,一些逃脱和一个捕获组:
preg_match('/<time datetime="(\d{4}-\d{2}-\d{2})"/',$string,$date);
echo $date[1] . "<br />";
答案 2 :(得分:1)
你的模式需要/../
preg_match('/\<time datetime="d{4}-d{2}-d{2}"/',$string,$date);
编辑: 看到蒂姆的回答,你也需要捕获组。