我有这个示例字符串,我想用regex:
爆炸日,月,小时,分钟,(am/pm)SunDec 16 00:00am
使用这个:('w+)'s+('w+)'s+('d+)':('d+)(..)
但是它给了我:
Array
(
[0] => SunDec 16 00:00am
[1] => SunDec
[2] => 16
[3] => 00
[4] => 00
[5] => am
)
我想不出来,我能把SubDec拆成两个吗?
你可以试试:
$str = 'SunDec 16 00:00am';
preg_match('/([A-Z]{1}'w+)([A-Z]{1}'w+)'s+('w+)'s+('d+):('d+)(..)/', $str, $ret);
print_r($ret);
你可以试试这个正则表达式,这可能会帮助你
([A-Z][a-z]+)+'s('d+)?'s?('d+)':('d+)([a-z]+)
如果你的字符串总是遵循这个例子,你可以使用这个:
$string = 'SunDec 16 00:00am';
$pattern = '!([a-zA-Z]{3})([a-zA-Z]{3})'s+('w+)'s+('d+)':('d+)(..)!';
preg_match($pattern, $string, $chunks);
print_r($chunks);
输出:Array
(
[0] => SunDec 16 00:00am
[1] => Sun
[2] => Dec
[3] => 16
[4] => 00
[5] => 00
[6] => am
)
你也可以使用这个稍微小一点的模式
'!([a-z]{3})([a-z]{3})'s+('w+)'s+('d+)':('d+)(..)!i'