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

如何修改正则表达式,在S开头数字串或<前与前置单词间加空格

正则修改方案

原有正则的问题

  • 语法错误:模式内括号不匹配,2个左括号仅对应1个右括号,运行直接报错
  • 匹配逻辑错误:[Ss]+表示匹配1个及以上的大小写S,不符合「S/s作为单个前缀开头接数字串」的需求
  • 替换逻辑错误:替换规则仅保留了前半部分的字母,直接丢弃了需要保留的后半部分内容(S开头的数字串、<字符)
  • 多余的边界限制:末尾加了$强制匹配整个字符串结尾,即使是你的示例1中S后还有字母A,加$也无法命中匹配,非字符串结尾的场景也会失效

正确实现代码

如果处理的是原始<字符:

re.sub(r'([a-zA-Z])([Ss]\d+|<)', r'\1 \2', report)

如果处理的是转义后的&lt;字符:

re.sub(r'([a-zA-Z])([Ss]\d+|&lt;)', r'\1 \2', report)

如果需要严格限制S后面的数字固定为7位,将\d+替换为\d{7}即可。

效果验证

  • 输入1:RICHARDJAMESS1234567A → 输出:RICHARDJAMES S1234567A,符合预期
  • 输入2:ALFAROMEO<P> → 输出:ALFAROMEO <P>,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:15:05