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

如何在Python中用正则匹配并提取字符串指定可变部分?

正则表达式修正方案

问题说明

给定输入文本:

SCOPE OF WORK: Supply &  Flensburg House, MMDA Colony,     PAN#: AAYCS8310G
installation Arumbakkam,Chennai,Tamil Nadu,
  xxxxxx

其中可变部分为:

Flensburg House, MMDA Colony,

和

Arumbakkam,Chennai,Tamil Nadu,

可变内容允许包含字母、数字、逗号、#、-、_,其余部分(含空格)固定不变。

当前使用的正则表达式存在问题:

SCOPE OF WORK: Supply &  [A-Za-z,\s]]*PAN#: [A-Z]{5}[0-9]{4}[A-Z]{1}\n    installation [A-Za-z]\n      xxxxxx

需要修正正则以提取目标内容:

Flensburg House, MMDA Colony,     
installation Arumbakkam,Chennai,Tamil Nadu,

问题分析

当前正则的核心问题:

  • 字符集 [A-Za-z,\s]]* 存在语法错误(多了一个闭合方括号)
  • 第一个可变部分的字符集未覆盖允许的数字、#、-、_
  • 第二个可变部分仅匹配单个字母,无法匹配完整内容
  • 换行和空格的匹配逻辑不符合原文本结构

修正后的正则表达式

使用捕获组精准提取两个可变部分:

SCOPE OF WORK: Supply &  ([A-Za-z0-9,#\-_\s]+)PAN#: [A-Z]{5}[0-9]{4}[A-Z]\ninstallation ([A-Za-z0-9,#\-_\s]+)\n  xxxxxx

关键调整

  • 修复字符集语法错误,移除多余的 ]
  • 扩展字符集,加入数字、#、-、_(- 转义避免被解析为范围符)
  • 用 + 替代 *,确保可变部分非空
  • 为两个可变部分分别设置捕获组,便于后续提取拼接
  • 严格匹配原文本的换行和空格结构

提取结果处理

捕获到两个分组后,按目标格式拼接:

{捕获组1内容}     
installation {捕获组2内容}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:21:31