我有一个字符串,其中应包含名称和注册日期:
Dipak Misra - 18 Nov 2018 10:20
我想像这样将字符串转换成数组:
Array ( [0] => Dipak Misra [1] => 18 Nov 2018 [2] => 10:20 )
我正在使用preg_match_all()
函数:
$re = '/\w+(?:[-\s]\w+)*/';
$str = "Dipak Misra - 18 Nov 2018 10:20";
preg_match_all($re, $str, $matches);
print_r($matches[0]);
我正在得到这样的输出:
Array ( [0] => Dipak Misra [1] => 18 Nov 2018 10 [2] => 20 )
请指导我。
答案 0 :(得分:3)
如果该字符串的格式未更改,则可以在空格,连字符空格或在左侧和右侧均出现数字而不是匹配的空格处进行拆分。
例如:
- |(?<=\d) (?=\d)
结果:
print_r(preg_split("/ - |(?<=\d) (?=\d)/", "Dipak Misra - 18 Nov 2018 10:20"));
答案 1 :(得分:1)
使用preg_match()
和([^-]+)\s+-\s+(.*)\s(\d+:\d+)
作为模式
$re = '/([^-]+)\s+-\s+(.*)\s(\d+:\d+)/';
$str = "Dipak Misra - 18 Nov 2018 10:20";
preg_match($re, $str, $matches);
unset($matches[0]);
print_r($matches);
答案 2 :(得分:0)