如何使用正则表达式匹配字符串中的PHP time()或microtime()?
我目前有一个regex命令,它以字符串形式匹配php时间:如何使用正则表达式匹配字符串中的PHP time()或microtime()?,php,regex,time,microtime,Php,Regex,Time,Microtime,我目前有一个regex命令,它以字符串形式匹配php时间: preg_match( '/([a-z]+)_([0-9]{9,})\.jpg/i', $aName, $lMatches ); 如何修改它以使其与同一匹配中的microtime()匹配 示例: foobar_1453887550.jpg(匹配) foobar_1453887620.8717.jpg(比赛) foobar_123.jpg(不匹配) foobar_adsf123123.jpg(不匹配)使用?添加可选组: preg_mat
preg_match( '/([a-z]+)_([0-9]{9,})\.jpg/i', $aName, $lMatches );
如何修改它以使其与同一匹配中的microtime()匹配
示例:
foobar_1453887550.jpg(匹配)
foobar_1453887620.8717.jpg(比赛)
foobar_123.jpg(不匹配)
foobar_adsf123123.jpg(不匹配)使用
?
添加可选组:
preg_match( '/([a-z]+)_([0-9]{9,})(\.[0-9]{4,})?\.jpg/i', $aName, $lMatches );
这里的(\.[0-9]{4,})
是一个可选组,可以在字符串中显示也可以不显示
考虑到@trincot remark,如果结束零在毫秒内不出现,您可以将可选组更改为(\.[0-9]+)?
preg_match( '/([a-z]+)_([0-9]{9,})(\.[0-9]+)?\.jpg/i', $aName, $lMatches );
首先,上面的正则表达式不应与第二个示例相匹配:foobar_1453887620.8717.jpg 现在,如果您想让它匹配小于9的数字,那么在“_”之后,您需要根据需要修改
{9,}
{9,}
匹配先前的匹配(在本例中为数字[0-9]
),重复九次或以上
- 将第二个示例(foobar_1453887620.8717.jpg)包含在
匹配,您的正则表达式应为:
/([a-z]+)\[0-9.]{9,})\.jpg/i
- 要匹配您的第三个示例(foobar_123.jpg):
/([a-z]+)\[0-9]{3,})\.jpg/i
- 要匹配您的第四个示例(foobar_adsf123123.jpg):
/([a-z]+)([0-9\w]{3,})\.jpg/i
- 要匹配以上所有示例:
/([a-z]+)\[0-9.[w]{3,})\.jpg/i
{1,4}
?如果微时间确实最多有4位小数,那就是它了,但OP不清楚限制是什么。我只会使用+