正则表达式:+ $ VS*$ VS无

Ala*_*ira 7 regex

在正则表达式中,^[a-zA-Z]+$和之间有什么区别^[a-zA-Z]*$.此外,我将能够不包括它在所有,要么^[a-zA-Z]$或^[a-zA-Z].

我在网上查看它说+匹配前面的字符一次或多次并*匹配前面的字符零或一次,但我不知道这在这种情况下是什么意思,或者根本不是.

Sub*_*iem 6

+表示1或更多 *表示0或更多

所以找到一个空字符串^[a-zA-Z]*$,但不是^[a-zA-Z]+$

^[a-zA-Z]$ 意味着在az和AZ范围内只有一个字母.

a+是a,aa,aaa,...,aaa...aaa等

a*是'', ,,a ,...,等aaaaaaaa...aaa

^ a $只是'a'

编辑:你也可以^a?$用来找到0或1出现a,所以要么''或a


das*_*ght 5

^并且$是锚点.它们与任何东西都不匹配,它们只是将它放在输入的特定位置.

  • 当你有^,你告诉引擎它后面的任何东西必须从行的开头开始
  • 如果有$,你告诉引擎它必须从行的末尾开始
  • 如果你有两个^,$你告诉引擎它们之间的任何东西都必须覆盖整个线路的端到端.

现在应该很容易理解锚点之间的区别[a-zA-Z]*和[a-zA-Z]+位置:带星号的那个允许空行,而带有加号的那个坚持匹配至少一个字符.

还应该很容易理解当你只放置一个锚点时会发生什么:基本上,你^在$发现匹配时让发动机忽略开头(缺失时)或行尾(缺失时).