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

Python正则表达式模式匹配:匹配括号(T1,T2,T3,T4)前后3到4个单词

Python 正则匹配括号前后3-4个单词解决方案

实现思路

通过正则分组分别捕获括号前缀、括号内容、括号后缀三个部分,再对结果做简单清洗即可得到括号前后相邻的3~4个目标单词。

完整可运行代码

import re

# 原始输入字符串
raw_str = "First, after preprocessing, citation data are carefully analysed for the analysis tasks (T1, T2, T3, T4) to establish a new ranking model."

# 正则规则:分别捕获括号前3-4个单词、括号内容、括号后3-4个单词
regex = r'((?:\b\w+\b\W+){3,4})\([^)]+\)((?:\W+\b\w+\b){3,4})'
res = re.search(regex, raw_str)

if res:
    # 清洗结果,去除多余标点和空白符
    before_words = [item.strip(',. ') for item in res.group(1).split() if item.strip(',. ')]
    after_words = [item.strip(',. ') for item in res.group(3).split() if item.strip(',. ')]

    print("括号前3-4个单词:", before_words)
    print("括号后3-4个单词:", after_words)

运行输出结果

括号前3-4个单词: ['for', 'the', 'analysis', 'tasks']
括号后3-4个单词: ['to', 'establish', 'a', 'new']

规则说明

  • 正则中的{3,4}代表匹配3到4个单词,如果你只需要固定匹配3个单词,直接把该参数修改为{3}即可
  • 中间的\([^)]+\)可以匹配任意括号包裹的内容,如果你只需要匹配T1-T4格式的括号内容,可以替换为\(T[1-4](?:, T[1-4])*\)缩小匹配范围
  • \b为词边界标识符,可以避免把标点符号误识别为单词的一部分

内容的提问来源于stack exchange,提问作者Muhammad Bilal Rehman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:24:07