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

正则表达式匹配至可选结束词,无结束词时匹配整串

解决方案

可以使用正向预查实现这个需求,正则表达式如下:

^(.*?)(?=\s+WHERE|$)

正则说明:

  • ^:锚定字符串起始位置,避免从中间开始匹配
  • .*?:非贪婪模式匹配任意字符,确保不会跳过第一个WHERE
  • (?=\s+WHERE|$):正向预查,匹配两种场景:
    1. 后面紧跟一个或多个空白字符 + WHERE(此时匹配到WHERE之前的内容)
    2. 字符串结尾(此时匹配整个字符串)

测试验证:

针对你的三个示例输入,匹配结果完全符合预期:

  1. 输入:" \n SELECT id FROM table WHERE country=US" → 匹配结果:" \n SELECT id FROM table"
  2. 输入:" \n SELECT id FROM table" → 匹配结果:" \n SELECT id FROM table"
  3. 输入:" \n SELECT id FROM table GROUP BY" → 匹配结果:" \n SELECT id FROM table GROUP BY"

如果需要适配WHERE前可能没有空白字符的场景,可以将正则调整为:

^(.*?)(?=\s*WHERE|$)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:24:50