gpt4 book ai didi

javascript - 正则表达式 : Why this regex doesn't match "not starts with" two letter?

转载 作者:行者123 更新时间:2023-12-02 16:14:49 26 4
gpt4 key购买 nike

我尝试匹配一个不以“t”开头的单词

例如

/^[^t]est$/.test('test') # false

/^[^t]est$/.test('best') # true

但是当我尝试将长度设置为 2 时,它不起作用:

/^[^t]{2,2}st$/.test('ttst') # false

/^[^t]{2,2}st$/.test('tbst') # false (should be true)

/^[^t]{2,2}st$/.test('bbst') # true

tbst 仅包含一个t,因此不应匹配

谁能解释一下为什么?谢谢

最佳答案

正则表达式按书面方式工作:

/^[^t]{2,2}st$/
  • ^ 断言字符串开头的位置
  • [^t]{2,2} 匹配下面列表中不存在的单个字符量词:{2,2} 正好 2 次
  • t 文字字符 t(区分大小写)
  • st 与字面上的字符 st 匹配(区分大小写)
  • $ 在字符串末尾断言位置

您也不需要执行 {2,2},因为这是一个范围,您可以对 2 个匹配项执行 {2},或者对 1 至 2 个匹配项执行 {1,2}。

REGEX101

这个示例应该可以很好地说明该正则表达式中发生的情况。

如果您正在寻找解决方案:匹配任何不以 tt 开头的单词(区分大小写),您可以使用以下内容:

/^(?!tt)\w+$/

PROOF

希望这有帮助。

关于javascript - 正则表达式 : Why this regex doesn't match "not starts with" two letter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29776741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com