如何使用 Regex 匹配字符串中的 PHP time() 或 microtime()?
How to use Regex to match PHP time() or microtime() in a string?
我目前有一个匹配字符串中 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_match( '/([a-z]+)_([0-9]{9,})(\.[0-9]{4,})?\.jpg/i', $aName, $lMatches );
这里 (\.[0-9]{4,})?
是一个可选组,它可以出现或不出现在您的字符串中。
考虑到@trincot 的评论,如果结束零不会在毫秒内出现,您可以将可选组更改为 (\.[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
我目前有一个匹配字符串中 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_match( '/([a-z]+)_([0-9]{9,})(\.[0-9]{4,})?\.jpg/i', $aName, $lMatches );
这里 (\.[0-9]{4,})?
是一个可选组,它可以出现或不出现在您的字符串中。
考虑到@trincot 的评论,如果结束零不会在毫秒内出现,您可以将可选组更改为 (\.[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