You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现字符与数字混合字符串拆分至数组的方法

实现splitString函数拆分字母前缀+数字后缀的字符串

嘿,这个需求很明确,咱们可以利用PHP的正则表达式来完美解决,毕竟你的输入字符串都是纯字母前缀+纯数字后缀的固定格式,正则刚好能精准定位拆分点。

实现思路

核心就是用正则表达式匹配出字符串开头的所有字母,以及结尾的所有数字,然后把这两部分提取出来存入结果数组。

完整函数代码

function splitString($string){
    $result = array();
    // 正则匹配:开头的字母组 + 结尾的数字组
    preg_match('/^([A-Za-z]+)(\d+)$/', $string, $matches);
    
    // 匹配成功时填充结果数组
    if (count($matches) === 3) {
        $result[0] = $matches[1];
        // 这里可以选择是否把数字转成int类型,根据你的需求调整
        $result[1] = is_numeric($matches[2]) ? (int)$matches[2] : $matches[2];
    }
    
    return $result;
}

正则表达式解释

  • ^([A-Za-z]+):^表示字符串开头,[A-Za-z]+匹配一个或多个大小写字母,用括号包裹形成第一个捕获组,对应前缀字母部分。
  • (\d+)$:\d+匹配一个或多个数字,$表示字符串结尾,括号包裹形成第二个捕获组,对应后缀数字部分。
  • 整个正则确保输入字符串完全符合“字母+数字”的格式,避免出现中间混杂其他字符的无效输入。

测试验证

把你的测试数据代入函数,就能得到预期结果:

$data1 = "W97";
$data2 = "RP100";
$data3 = "MAL89";
$data4 = "UNIQ95";

print_r(splitString($data1)); // Array ( [0] => W [1] => 97 )
print_r(splitString($data2)); // Array ( [0] => RP [1] => 100 )
print_r(splitString($data3)); // Array ( [0] => MAL [1] => 89 )
print_r(splitString($data4)); // Array ( [0] => UNIQ [1] => 95 )

额外说明

如果遇到不符合格式的输入(比如W12A34这种中间混字母的),函数会返回空数组。你可以根据业务需求添加错误处理逻辑,比如返回默认值或者抛出提示信息。

内容的提问来源于stack exchange,提问作者jojo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 10:02:53