在正则表达式中,当我们省略" ^"或者" $"?

时间:2014-09-10 11:22:36

标签: regex

我知道$符号表示行或字符串的结尾。

是否必须放入正则表达式?

当我们省略$

时,会发生什么或意义如何变化?

例如:

^/abc/\w{1,3}
^/abc/\w{1,3}$

以上两行有什么区别?

3 个答案:

答案 0 :(得分:4)

它取决于你想要的东西。你不需要在正则表达式中写任何东西,即使(空)在某种程度上是一个有效的正则表达式。

两种模式的区别在于,第一个检查主题是否以模式开头,而第二个检查整个主题是否与模式完全匹配

/abc/hello world将匹配第一个,但不匹配第二个。

所以说,第二种模式是第一种模式的更具体的版本。

答案 1 :(得分:1)

第一个匹配/abc/aapje,第二个不匹配,因为它要求在1到3个字符后必须跟随行尾。

答案 2 :(得分:1)

第一个正则表达式^/abc/\w{1,3}将匹配/abc/aaa123,而^/abc/\w{1,3}$则不会。{/ p>

原因是$锚点与行尾相匹配 同样,^锚点与行的开头匹配。

^$锚点都不是强制性的,事实上如果你希望匹配字符串中间的东西,你会省略它们。例如。 /abc/\w{1,3}将匹配此字符串/abc/def中心的Some text /abc/def more text

如果您想了解如何添加各种锚点效果正则表达式,我建议您尝试Regex101.comDebuggex.com