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

求匹配非以MY或BY开头字符串的正则表达式

嗨,我来帮你搞定这个正则表达式的问题~

匹配不以MY/BY开头的字符串的正确写法

你之前尝试的/^my&&^by/没法正常工作,是因为正则里根本没有&&这种逻辑与的语法,而且你的需求其实是要排除以my或by开头的字符串,这时候用否定前瞻断言就对了。

区分大小写的版本(仅排除小写my/by开头)

直接用这个正则:

/^(?!my|by).+/

不区分大小写的版本(排除所有大小写组合,比如MY/My/by/BY等)

加上i修饰符即可:

/^(?!my|by).+/i

拆解一下这个正则的逻辑:

  • ^:锚定到字符串的起始位置,确保我们检查的是开头的字符
  • (?!my|by):这是核心的否定前瞻,意思是“从当前位置开始,后面不能是my或者by”
  • .+:匹配任意非换行的字符至少一次(如果需要允许空字符串,把+换成*就行)

测试你的预期案例:

  • mycountry:开头是my,触发否定前瞻的排除规则,匹配结果为false
  • byyou:开头是by,同样被排除,匹配结果为false
  • xyz:开头既不是my也不是by,符合规则,匹配结果为true

完全符合你想要的结果哦~

另外提一句,如果你的场景允许不用正则,直接用字符串的startsWith方法判断也很简单(比如JS里!str.startsWith('my') && !str.startsWith('by')),但如果必须用正则的话,上面的写法就完美解决问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:19:32