我知道$
符号表示行或字符串的结尾。
是否必须放入正则表达式?
当我们省略$
?
例如:
^/abc/\w{1,3}
^/abc/\w{1,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.com或Debuggex.com。