常用表达

时间:2011-04-16 13:07:42

标签: regex

[0-9]{1,2}^[0-9]{1,2}$之间的区别是什么?

如果我们移除^$,这种情况会产生什么影响?

感谢。

3 个答案:

答案 0 :(得分:3)

^表示匹配应出现在字符串的开头,而$表示它应匹配字符串的结尾。

在你的情况下,[0-9]{1,2}将匹配任何字符串内的一个或两个数字的任何数字(例如sakdj12lkjad92将匹配),而后者仅匹配字符串仅包含一个或两个数字

答案 1 :(得分:2)

^ means start of string
$ means end of string

[0-9] {1,2} => DEMO

^ [0-9] {1,2} => DEMO

答案 2 :(得分:2)

这些字符称为锚点,它们绑定到字符串中的特定位置。如果您不讨论多行正则表达式,它们将绑定到字符串的开头(对于^)和结束(对于$)。

这意味着^[0-9]{1,2}$是一个完全由一个或两个数字组成的字符串,而[0-9]{1,2}是一个任意大小的字符串,其中包含一个或两个连续数字。

所以第一个匹配1779642等等。后者匹配任何一方文本中的任何文本,例如paxdiablo is number 1calling car 54, where are you等等。

如果您的正则表达式引擎能够处理多行输入,则其含义通常会略有改变。 ^将绑定到字符串的开头或行尾字符后面的零宽度点。类似地,$将绑定到字符串的结尾以及在线结束之前的任何零宽度点。

在这些情况下,如果您只想匹配字符串的开头或结尾,您可能会发现可以使用\A\Z