有人能解释一下这两个正则表达式的区别吗?

Can anyone explain the difference between these two regular expressions?

本文关键字:正则表达式 两个 区别 能解释 一下      更新时间:2023-09-26
/^[a-zA-Z]+$/ 

/[^a-zA-Z]+$/

表达式开头的^表示"锚定在字符串的开头"。

字符类 []表达式中的^表示negate

因此,/^[a-zA-Z]$/匹配的字符串(从头到尾)完全由大写字母和小写字母组成,而/[^a-zA-Z]$/匹配的是"不由字母字符组成的字符串的末尾"(例如,字符串末尾的数字)。

this is a string       -- matches neither 
                          (contains non alphabetic, but doesn't end in it)
this is a number: 123  -- second expression matches ': 123'
                          (string ends in non-alphabetic characters)
this                   -- first expression matches  'this' 
                          (string contains only alphabetic characters)

在第一种情况下,^表示输入的开始。情形二否定项

情形1:从开始(^)到结束($)匹配a-zA-Z 0次或以上(+)次

案例2:用a-zA-Z 0-x(+)字符匹配所有不(^)结束($)的字符

/^[a-zA-Z]+$/

表示字符串应该
^:以
开头[a-zA-Z]:小写或大写字母
+:至少一个以上的,在这个例子中至少一个α字符
$:应该以大写或小写字母

结尾

例子:
OnLyUpPeRaNdLoWeRcAsEaNdNoSpAcEs

/[^a-zA-Z]+$/

[^a-zA-Z]: NOT一个大写或小写字符
+:以上至少一个,在本例中至少有一个字符但不的大写或小写字母
$:应该以none大写或小写字母

结尾

例子:
123456789
Anything12345 <——这可以工作,因为我们没有指定字符串应该如何开始,但我们知道它应该以一个非alpha字符

结束