$datum = "Samstag, 26.10.2013";
echo("<p>".$datum."</p>");
$regresult = preg_match("(.*)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,4})",$datum, $matches);
echo("<p>Result: ".$regresult."</p>");
echo("<p>Error: ".preg_last_error()."</p>");
echo("<p>Match: ".$matches[2]."</p>");
结果是:
<p>Samstag, 26.10.2013</p><p>Result: </p><p>Error: 0</p><p>Match: </p>
但是在preg_match的文档中它说:
如果模式与给定主题匹配,则谁知道我做错了什么?preg_match()返回1,如果匹配,则返回0 没有,或者如果发生错误则为FALSE。
答案 0 :(得分:4)
您错过了delimeters。
preg_match要求你做这样的事情
preg_match('/{pattern}/', $subject);
在这种情况下,我使用/
作为我的分隔符。
一个例子:正好匹配3位
preg_match('/\d{3}/', $subject);
If you check out php's documentation on preg_match you can see other examples
编辑:
Php原生日期时间函数参考链接:
<强> strtotime 强>
<强> date/time formats 强>
<强> date 强>
<强> time 强>
答案 1 :(得分:2)
您必须在正则表达式模式中使用分隔符/
:
preg_match("/(.*)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,4})/", $datum, $matches);
↑ ↑
delimeter delimeter
参见 this demo - 它有效......