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

如何正确编写Regex以移除字符串中的数字及剂量单位?

正则替换问题修复

你的正则写法存在两个关键问题:

  • 错误使用嵌套方括号,[[ML]|G|KG|CAPS] 是字符集语法,里面的|会被当成普通字符,且ML、CAPS会被拆成单个字符匹配(比如只匹配M、C),导致替换后残留部分单位字符
  • 没有用分组匹配完整的单位词组,而是试图匹配单个字符

正确的正则应该用圆括号分组指定完整单位选项,同时匹配数字和单位之间的可选空格:

import re
def modify_string(x):
    return re.sub(r"\d+\s*(?:ML|G|KG|CAPS)", "", x).strip()

正则说明:

  • \d+:匹配1个或多个数字
  • \s*:匹配0个或多个空白字符(兼容数字和单位之间有空格/无空格的情况,比如150G和30 ML)
  • (?:ML|G|KG|CAPS):非捕获分组,匹配指定的完整单位(ML/G/KG/CAPS),用|表示“或”的关系

测试你的字符串列表:

test_list = ['INSUTRIN 150G','NEUROZINE 30 ML','INSULITROL 30 CAPS']
result = [modify_string(s) for s in test_list]
print(result)  # 输出: ['INSUTRIN', 'NEUROZINE', 'INSULITROL']

内容的提问来源于stack exchange,提问作者Leonardo Lima Ferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 08:20:17