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

Python使用re.search匹配起止字符串中间内容且不包含起止标记

import re

start = 'melons'
end = 'strawberry'
s = 'banana apples melons+cucumber+strawberry grapes'

# 构建正则规则
r = re.search(re.escape(start) + r'(.*?)' + re.escape(end), s)

print(r.group(1)) 
# 输出:+cucumber+

规则说明

  • re.escape():用来处理start和end变量,避免起止字符串中包含.、*这类正则特殊字符时出现匹配异常
  • 核心捕获逻辑(.*?):
    • 括号代表正则捕获分组,分组序号从1开始,对应后续调用的group(1)
    • .*?为非贪婪匹配,会尽可能短的匹配字符,保证命中第一个出现的end就停止,避免文本中存在多个end时匹配范围超出预期
  • 如果需要匹配跨行内容,可以添加re.DOTALL参数,让.可以识别换行符:
    r = re.search(re.escape(start) + r'(.*?)' + re.escape(end), s, re.DOTALL)
    

注意事项

如果无法确认目标字符串中一定存在对应的start和end,建议先判断匹配结果是否为空,避免抛出属性错误:

if r:
    print(r.group(1))
else:
    print("未匹配到符合要求的内容")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:09:03