我有一个字符串
$str = "101WE3P-1An Electrically-Small104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01"
我想通过数字来拆分此字符串,如:“101WE3P-1AN ......”应该是第一要素,‘104TUA ......’应该是第二个元素?
有人给我写了下面的代码在我的前面的问题的preg_match来匹配连续三个数字的字符串? 一些小分钟前:
$result = preg_split('/^\d{3}$/', $page, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
基线是我想匹配的3 digited号,接着是没有任何资本的,其次是任何东西,包括\ t? 提前致谢。
你可以告诉preg_split()
在其后面是三个数字用在字符串中的任何一点分裂前向断言 。
$str = "101WE3P-1An Electrically-Small104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01";
$result = preg_split('/(?=\d{3})/', $str, -1, PREG_SPLIT_NO_EMPTY);
var_export($result);
给出了下面的数组:
array (
0 => '101WE3P-1An Electrically-Small',
1 => '104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01',
)
该PREG_SPLIT_NO_EMPTY
标志的使用,因为该字符串的最开始也是一个点,有三个数字,所以空分发生在这里。 我们可能会改变不字符串的最开始分裂正则表达式,这将使这一点更难以在一目了然的了解,而标志是很清楚的。
我想比赛,而不是分裂
preg_match_all('/^(\d{3}.*?)*$/', $str, $matches);
var_dump($matches);
似乎得到正确的结果,为您的样品