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

Python正则如何排除指定字符串匹配剩余目标内容及对应数值

Python正则匹配排除指定关键词的名称与数值实现方案

核心实现逻辑

用正则的负向先行断言排除Honda、Nissan两个指定名称,同时分两个捕获组分别提取剩余名称和对应数值即可。

代码示例

import re

# 可根据实际原始文本的结构、分隔符灵活调整匹配规则
raw_text = """
Cider 631
Honda 2024
Spruce 871
Nissan 1890
Pine 10621
Walnut 10301
"""

# 核心正则表达式
pattern = r'\b(?!(?:Honda|Nissan)\b)([A-Za-z]+)\s+(\d+)'
result = re.findall(pattern, raw_text)
print(result)

规则说明

  • \b为单词边界标识,避免部分匹配,不会误排除名称里包含Honda/Nissan子串的其他合法内容
  • (?!(?:Honda|Nissan)\b)是负向先行断言,代表当前匹配位置后不是完整的Honda或Nissan单词,?:用于标记该分组为非捕获组,避免多余分组内容出现在findall的返回结果中
  • ([A-Za-z]+)是第一个捕获组,匹配纯字母组成的名称,若名称支持下划线、数字等其他字符,可自行调整中括号内的字符集规则
  • \s+匹配名称和数值之间的1个或多个空白分隔符
  • (\d+)是第二个捕获组,匹配数值部分

输出结果

运行代码后直接得到目标返回值:
[('Cider', '631'), ('Spruce', '871'), ('Pine', '10621'), ('Walnut', '10301')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:54:00