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

Java正则表达式:匹配以fn-开头但排除特定后缀的行

正则表达式匹配问题解决方案

需求:匹配所有以fn-开头的行,但要排除连字符后是foobar或fubar的完整行。

匹配示例:

fn-bar
fn-foo
fn-foobarb

不匹配示例:

fn-foobar
fn-fubar

xn-blah

你当前用的正则(fn)-(?!(fubar|foobar)$)没法匹配整行,问题在于这个正则只覆盖了前缀部分,没限定行首行尾,也没匹配整行剩余内容。

修正后的正则:

^fn-(?!(fubar|foobar)$).+$

规则解释:

  • ^:锁定行的起始位置,确保匹配的是行首开始的fn-
  • fn-:匹配固定前缀
  • (?!(fubar|foobar)$):负向前瞻断言,排除前缀后直接是foobar或fubar且刚好到行尾的情况
  • .+$:匹配前缀之后的任意非空内容直到行尾,确保整行被选中

这样就能精准匹配符合要求的整行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:20:39