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

如何用正则获取‘search from here’之后每个指定单词的匹配项?

解决方案

方法1:全局匹配+正向断言

调整正则表达式,结合全局匹配(g修饰符)逐个捕获目标词,同时确保匹配内容位于search from here之后:

(?i)(?<=search from here.*?)\b(apple|banana|orange)\b

说明

  • (?i):启用大小写不敏感匹配
  • (?<=search from here.*?):正向后顾断言,保证当前匹配的单词前存在search from here及任意长度的非贪婪字符
  • \b(apple|banana|orange)\b:精准匹配目标完整单词
  • 开启全局匹配后,引擎会遍历字符串,捕获所有符合条件的目标词,包括你需要的两个apple和banana。

方法2:分两步提取匹配

如果正则引擎对可变长度后顾断言支持有限,可拆分为两步操作:

  1. 先提取search from here之后的全部文本:
    (?i)(?<=search from here).*$
    
  2. 对提取到的子串执行全局匹配,查找所有目标词:
    (?i)\b(apple|banana|orange)\b
    

原正则的问题分析

你原有的正则(?i)(?<=search from here\s)(\bapple|banana|orange\b)(\s+(\bapple|banana|orange\b))*试图一次性匹配所有后续目标词,但重复捕获组(\s+(\bapple|banana|orange\b))*仅会保留最后一次重复匹配的内容,因此无法获取所有中间目标词,只能拿到第一个和最后一个匹配项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:45:38