0

我的情况是我需要将“Havenlaan 86C Bus 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);

上面的代码成功地完成了这项工作,输出如下。

  1. 黑文兰

  2. 86C 12路公交车

但是当我将字符串更改为 $str = 'Havenlaan ABC 86C Bus 12';

我明白了

1. Havenlaan
2. ABC 86C Bus 12

我需要的是

1. Havenlaan ABC

2. 86C Bus 12

IE。第一个输出应该是纯字符串,第二个应该以数字开头,后面可以跟字符。

4

3 回答 3

2

您可以使用前瞻

$regex = '/(?=\d)/';

这将在第一次出现数字时拆分(限制指定为 2)。

于 2013-10-03T21:24:59.370 回答
1

如果您只是拆分两次,请使用/(?=\d)/

于 2013-10-03T21:25:05.560 回答
0

/ \d/用作分隔符。

[ ^\d]仅匹配空格或非数字的单个字符^\d

于 2013-10-03T21:31:55.977 回答