在正则表达式中,^[a-zA-Z]+$
和之间有什么区别^[a-zA-Z]*$
.此外,我将能够不包括它在所有,要么^[a-zA-Z]$
或^[a-zA-Z]
.
我在网上查看它说+
匹配前面的字符一次或多次并*
匹配前面的字符零或一次,但我不知道这在这种情况下是什么意思,或者根本不是.
+
表示1或更多
*
表示0或更多
所以找到一个空字符串^[a-zA-Z]*$
,但不是^[a-zA-Z]+$
^[a-zA-Z]$
意味着在az和AZ范围内只有一个字母.
a+
是a
,aa
,aaa
,...,aaa...aaa
等
a*
是'', ,,a
,...,等aa
aaa
aaa...aaa
^ a $只是'a'
编辑:你也可以^a?$
用来找到0或1出现a
,所以要么''或a
^
并且$
是锚点.它们与任何东西都不匹配,它们只是将它放在输入的特定位置.
当你有^
,你告诉引擎它后面的任何东西必须从行的开头开始
如果有$
,你告诉引擎它必须从行的末尾开始
如果你有两个^
,$
你告诉引擎它们之间的任何东西都必须覆盖整个线路的端到端.
现在应该很容易理解锚点之间的区别[a-zA-Z]*
和[a-zA-Z]+
位置:带星号的那个允许空行,而带有加号的那个坚持匹配至少一个字符.
还应该很容易理解当你只放置一个锚点时会发生什么:基本上,你^
在$
发现匹配时让发动机忽略开头(缺失时)或行尾(缺失时).