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

Excel中提取文本字符串里mm前数字的方法求助

提取绳索宽度数值的解决方案

针对你给出的数据集,所有宽度数值都遵循「数字(整数/带小数点/逗号的小数)+ 大小写MM单位」的格式,用正则表达式可以精准提取,以下是具体实现:

核心正则模式

(\d+([.,]\d+)?)\s*[Mm][Mm]

模式说明:

  • \d+:匹配1个及以上数字(整数部分)
  • ([.,]\d+)?:可选匹配小数部分,支持点或逗号作为分隔符
  • \s*:匹配数值与单位之间的0个或多个空格(兼容10MM「无空格」、13,0 MM「有空格」等格式)
  • [Mm][Mm]:匹配大小写的MM单位(兼容mm/MM)

Python 实现示例

import re

# 你的示例数据集
sample_data = [
    "STAINLESS ROPE  10MM (7X19) GR316",
    "SHACKLE D SCREW PIN 20 X22mm  4,75T ISO",
    "22.0mm MAX-A-LOK INSTANT COUPLING LINK",
    "FERRULES AFGRIP 13,0MM  DIN3093",
    "SWR 13,0MM 6X19(9/9/1)P 1800MPA DRG  RHO"
]

# 编译正则(提升重复匹配效率)
width_pattern = re.compile(r'(\d+([.,]\d+)?)\s*[Mm][Mm]')

# 批量提取并格式化结果
for item in sample_data:
    match_result = width_pattern.search(item)
    if match_result:
        # 统一把逗号分隔的小数转为点格式
        width_value = match_result.group(1).replace(',', '.')
        print(f"{item} → 提取宽度:{width_value} mm")

运行结果

STAINLESS ROPE  10MM (7X19) GR316 → 提取宽度:10 mm
SHACKLE D SCREW PIN 20 X22mm  4,75T ISO → 提取宽度:22 mm
22.0mm MAX-A-LOK INSTANT COUPLING LINK → 提取宽度:22.0 mm
FERRULES AFGRIP 13,0MM  DIN3093 → 提取宽度:13.0 mm
SWR 13,0MM 6X19(9/9/1)P 1800MPA DRG  RHO → 提取宽度:13.0 mm

注意事项

  • 如果数据中出现多个带MM的数值(比如某条记录同时有10MM和15MM),上述代码会提取第一个匹配到的数值;若需提取所有匹配项,可改用findall方法
  • 该正则已覆盖你给出的所有格式变体,若后续出现新格式(比如单位缩写为M),可调整正则的单位匹配部分为[Mm][Mm]?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:42:33