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

Python正则匹配:匹配两术语间指定字数内容并排除特定子串

Python正则匹配方案:含指定间隔单词的子串并排除特定内容

解决方案

在原有正则逻辑基础上添加负向先行断言,即可同时实现匹配间隔要求的子串、排除指定内容的需求。

最终正则表达式

(?!my very funny words)my(?:\s+\w+){0,2}\s+words

代码示例

import re

# 定义正则模式
pattern = r'(?!my very funny words)my(?:\s+\w+){0,2}\s+words'

# 测试用例1:符合匹配条件的文本
test_text1 = "I'm searching for my whatever funny words inside this text"
matches1 = re.findall(pattern, test_text1)
print(matches1)  # 输出: ['my whatever funny words']

# 测试用例2:包含需排除内容的文本
test_text2 = "I'm searching for my very funny words inside this text"
matches2 = re.findall(pattern, test_text2)
print(matches2)  # 输出: []

原理说明

  • my(?:\s+\w+){0,2}\s+words:原匹配逻辑,负责匹配"my"与"words"之间最多包含2个单词的子串
  • (?!my very funny words):负向先行断言,检查当前位置开始的子串不是指定的排除内容,若检测到排除内容则直接跳过该匹配项

扩展说明

如果需要排除多个特定子串,可直接扩展负向断言的内容,示例:

(?!my very funny words|my another excluded words)my(?:\s+\w+){0,2}\s+words

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:48:25