我尝试匹配一个不是以“t”开头的单词
e.g。
/^[^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
,因此不应该匹配
答案 0 :(得分:1)
RegEx的工作原理如下:
/^[^t]{2,2}st$/
您也不需要{2,2},因为这是一个范围,您可以为2场比赛做{2},或者为1到2场比赛做{1,2}。
此示例应该可以很好地说明该RegEx中发生的事情。
如果您正在寻找以下解决方案:匹配任何不以tt开头的单词(区分大小写),您可以使用以下内容:
/^(?!tt)\w+$/
希望这有帮助。
答案 1 :(得分:1)
^[t][t]
^断言字符串开头的位置
[t]匹配下面列表中的单个字符
字面字符t(区分大小写)
[t]匹配下面列表中的单个字符
字面字符t(区分大小写)
答案 2 :(得分:0)
/^[^t]{2,2}st$/.test('tbst') # false (should be true)
不,它不应该。 [^t]{2,2}
与[^t][^t]
的说法相同:两个原子都匹配任何字符但是" t"。
答案 3 :(得分:0)
正则表达式/^[^t]{2,2}st$/
要求前两个字符不是t
。由于第一个字符为t
,因此与字符串tbst
不匹配。