在第一次出现一个数字时将句子分成两部分


Break a sentence in two parts on first occurrence of a a number

我的情况是我需要将"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);

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

  1. 哈文兰

  2. 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字符。