[0-9]{1,2}
和^[0-9]{1,2}$
之间的区别是什么?
如果我们移除^
和$
,这种情况会产生什么影响?
感谢。
答案 0 :(得分:3)
^
表示匹配应出现在字符串的开头,而$
表示它应匹配字符串的结尾。
在你的情况下,[0-9]{1,2}
将匹配任何字符串内的一个或两个数字的任何数字(例如sakdj12lkjad92
将匹配),而后者仅匹配字符串仅包含一个或两个数字
答案 1 :(得分:2)
答案 2 :(得分:2)
这些字符称为锚点,它们绑定到字符串中的特定位置。如果您不讨论多行正则表达式,它们将绑定到字符串的开头(对于^
)和结束(对于$
)。
这意味着^[0-9]{1,2}$
是一个完全由一个或两个数字组成的字符串,而[0-9]{1,2}
是一个任意大小的字符串,其中包含一个或两个连续数字。
所以第一个匹配1
,77
,96
,42
等等。后者也匹配任何一方文本中的任何文本,例如paxdiablo is number 1
,calling car 54, where are you
等等。
如果您的正则表达式引擎能够处理多行输入,则其含义通常会略有改变。 ^
将绑定到字符串的开头或行尾字符后面的零宽度点。类似地,$
将绑定到字符串的结尾以及在线结束之前的任何零宽度点。
在这些情况下,如果您只想匹配字符串的开头或结尾,您可能会发现可以使用\A
和\Z
。