首先请原谅我对正则表达式不太熟悉。我想要的是一个正则表达式,它可以从任何类型的字符串中提取像 mysql 日期这样的日期。
到目前为止我一直在使用这个:^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$
但是现在我想从其他字符串和日期时间字符串中提取日期模式,我尝试将正则表达式更改为^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]).
基于一些在线正则表达式测试器,但它失败了。有时它也会给我一个三位数的结果。
换句话说,刺痛始于,yyyy-mm-dd
后面跟着空格字符数字或任何东西。如何提取日期?
UPDATE
我在这里用 preg_match 测试正则表达式:http://www.pagecolumn.com/tool/pregtest.htm
到目前为止,唯一有效的似乎是
[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])
如果您的字符串出现多个日期表单值,并且您想捕获所有这些值,则应该使用preg_match_all
功能,如果不是preg_match
足够。还使用^
and $
意味着输入字符串应该只是一个日期,所以避免它。
<?php
$input_string = "yes today is 2013-10-24";
if(preg_match("/\d{4}-\d{2}-\d{2}/", $input_string, $match))
{
print_r($match);
}
else
echo "not matched";
////////////////////////
/* Output:
Array
(
[0] => 2013-10-24
)
*/
现场演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)