php - 使用正则表达式匹配所有以 4 位数字结尾的子串

标签 php regex string preg-split

我正在尝试在 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/

相关文章:

java - Android 首选项错误, "String cannot be cast to int"

php - mod 重写存在一些问题

Java RegEX 拆分和反转字符串

c - 使用 strncpy 和 strncat 的奇怪输出

c# - C#中的字符串排序问题

javascript - 如何在执行 PHP 时动态编码为 Base64 "preg_replace"

php - FFmpeg 可以连接来自不同域的文件吗?

php - 存储每个 Assets 的自定义参数的最佳方式

php - Chrome 不会按标签搜索数据列表

Java REGEX - 从列表中添加可能性