我的情况是我需要将"Havenlaan 86C 巴士 12"分成两部分
$str = 'Havenlaan 86C Bus 12';
$regex = '/[ ^d]/';
$flags = PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY;
$exploded = preg_split( $regex,$str, 2, $flags);
print_r($exploded);
上面的代码成功地完成了这项工作,输出如下。
哈文兰
86C路12路
但是当我将字符串更改为 $str = '哈文兰 ABC 86C 巴士 12';
我得到
1. Havenlaan
2. ABC 86C Bus 12
我需要的是
1. Havenlaan ABC
2. 86C Bus 12
即第一个输出应该是纯字符串,第二个输出应该以数字开头,后面可以跟字符。
您可以使用前瞻
$regex = '/(?=d)/';
这将在第一次出现数字时拆分(限制指定为 2)。
如果您只是拆分两次,请使用 /(?=d)/
/ d/
用作分隔符。
[ ^d]
仅匹配空格或非数字^d
字符。