我正在尝试在 php 中拆分一个字符串,它看起来像这样:
ABCDE1234ABCD1234ABCDEF1234
进入一个字符串数组,在这种情况下,它看起来像这样:
ABCDE1234
ABCD1234
ABCDEF1234
所以模式是“未定义数量的字母,然后是 4 位数字,然后是未定义数量的字母和 4 位数字等。”
我正在尝试像这样使用 preg_split 拆分字符串:
$pattern = "#[0-9]{4}$#";
preg_split($pattern, $stringToSplit);
它返回一个包含第一个元素中的完整字符串(未拆分)的数组。
我猜这里的问题是我的正则表达式,因为我不完全理解如何使用它们,而且我不确定我是否正确使用它。
那么正确的正则表达式应该使用什么?
最佳答案
你不需要preg_split
,你想要preg_match_all
:
$str = 'ABCDE1234ABCD1234ABCDEF1234';
preg_match_all('/[a-z]+[0-9]{4}/i', $str, $matches);
var_dump($matches);
输出:
array(1) {
[0]=>
array(3) {
[0]=>
string(9) "ABCDE1234"
[1]=>
string(8) "ABCD1234"
[2]=>
string(10) "ABCDEF1234"
}
}
关于php - 使用正则表达式匹配所有以 4 位数字结尾的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403041/