我有一个字符串
“JonSmith02-11-1955”
我用
preg_split
获得JonSmith(reg ='[0-9-]')然后再做一次('[a-zA-Z] \')以获得他的生日。
有没有更好的方法让他们在一次分裂?
答案 0 :(得分:4)
答案 1 :(得分:2)
^(.*)(\d{2})\-(\d{2})\-(\d{4})$
怎么样?
它会将您的字符串分为四个部分:JonSmith
,02
,11
和1955
。
答案 2 :(得分:1)
^([a-zA-z]*)([0-9]*)\-(.+)*$
对于这个例子:
JonSmith02-11-1955
给:
JonSmith
02
11-1955
答案 3 :(得分:1)
尝试/(\w*)(\d{2}-\d{2}-\d{4})/
作为你的正则表达式 - 其他人可以更有效地做到这一点。这将为您提供两个捕获组,所以
$array = preg_match_all('/(\w*)(\d{2}-\d{2}-\d{4})/', "JonSmith02-11-1955");
print_r($array);
/*
Array
(
[0] => Array
(
[0] => JonSmith02-11-1955
)
[1] => Array
(
[0] => JonSmith
)
[2] => Array
(
[0] => 02-11-1955
)
)
*/
答案 4 :(得分:0)
preg_match('/([a-z]+)([0-9-]+)/i', 'JonSmith02-11-1955', $matches);
echo "Name is $matches[1]<br>\n";
echo "Birth date is $matches[2]<br>\n";