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

如何用正则表达式为含iPhone的字符串在字母数字间加空格且保留后缀?

iPhone字符串数字分隔的修正方案

原代码存在两个问题:

  • 正则会匹配所有数字并在其前后添加空格,导致数字后的字符(比如示例中的s)被单独隔开;
  • 未限定仅处理包含iPhone的字符串,会误处理其他带数字的字符串。

修正后的代码

import re

# 测试用例
test_cases = ['iPhone8s', 'iPhone12Pro', 'random8', 'iPhoneXsMax']

for s in test_cases:
    # 仅匹配iPhone后紧跟的数字,在两者间插入空格
    result = re.sub(r'(iPhone)(\d+)', r'\1 \2', s)
    print(f"{s} -> {result}")

输出结果

iPhone8s -> iPhone 8s
iPhone12Pro -> iPhone 12Pro
random8 -> random8
iPhoneXsMax -> iPhoneXsMax

正则说明

  • (iPhone):精准捕获iPhone这个固定前缀;
  • (\d+):捕获iPhone之后的连续数字序列;
  • 替换为\1 \2:将两个捕获组用空格连接,仅在iPhone和数字之间插入空格,数字后的字符保持原位置不变。

如果需要支持带小数的数字(比如iPhone13.5),可以把正则调整为(iPhone)(\d+(\.\d+)?),替换逻辑保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:55:21