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

如何编写匹配q.?r但排除sqrtf的正则表达式?

正则表达式解决方案

最终可用正则

(?!.*sqrtf)(?:s?q.?r|q.?rtf?)

问题解决思路

  • 前置的(?!.*sqrtf)是负前瞻断言,直接排除所有包含sqrtf的字符串,彻底避免匹配该词内部的任何子串(包括之前漏判的qr)
  • 模式组覆盖所有合法匹配场景:
    • s?q.?r:匹配带/不带s前缀、q和r之间可插入任意单个字符的情况(对应sq.?r和q.?r)
    • q.?rtf?:匹配q后跟可选单个字符、再跟rt或rtf的情况(对应q.?rt和q.?rtf)
  • 用(?:...)创建非捕获组,减少正则引擎的不必要开销

测试验证

✅ 匹配成功:qr、qmr、sqr、sqkr、qrt、qxt、qrtf、qzrtf
❌ 匹配失败:sqrtf、sqrtfxxx、xxsqrtf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:42:05