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

如何用正则匹配前文中存在isaac的select?原有写法失效原因及解法

正则匹配失效原因

你使用的(?<=isaac)select是定长正向回顾断言,仅能匹配紧接在isaac后面的select,也就是isaacselect这种前后完全相邻的场景。但你的测试文本中isaac位于第一行,和第二行的select之间间隔了大量普通字符、还有换行符,完全不满足「紧接」的要求,因此无法匹配。

解决方案

根据你使用的正则引擎支持能力,可以选择对应写法:

  • 如果你用的引擎支持不定长回顾断言 + 单行模式(如Java 9+、PHP、Python PyPi regex库等),可以直接用以下正则:
    (?s)(?<=isaac.*?)select
    
    说明:(?s)是单行模式标记,让.可以匹配换行符;.*?惰性匹配isaac和select之间的所有内容,只要isaac出现在select之前的任意位置,就能命中后面的select。
  • 如果你用的引擎不支持不定长回顾(如JavaScript、Java 8及以下、Python标准re库等),可以用两种方案:
    1. 若引擎支持\K标记,使用以下正则:
      (?s)^(?=.*isaac).*?\Kselect
      
      说明:^(?=.*isaac)先校验整个文本中存在isaac,.*?惰性匹配到select前的位置,\K会丢弃前面匹配的所有内容,仅返回select。
    2. 若不支持\K,分两步操作:
      • 第一步:校验整个文本是否匹配(?s).*isaac.*,确认isaac存在
      • 第二步:单独匹配所有select字符串即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:18:04