2

请问有人可以解释以下表达式之间的区别吗?

[0-9]{1,3}:[0-5][0-9]

^([0-9]{1,3}:[0-5][0-9])$

我没有得到正则表达式中 ^ 符号和 $ 符号的确切用法。

我观察到,如果我将第二个表达式写如下,它没有任何区别。

^([0-9]{1,3}):([0-5][0-9])$

4

3 回答 3

3

例子解释清楚:

^     : matches the beginning of a line
$     : matches the end of a line

"^foo$" : matches "foo", but not " foo" or "xxfooyy"
"foo$"  : matches "foo",  " foo" or "xxfoo" but not "foobar"
"^foo"  : matches "foo",  "fooyy" or "foo " but not "xfoo"
"foo"   : matches "foo",  " foo" or "xxfooyy"
于 2013-03-22T17:48:32.393 回答
2

^$这里是字符串锚点的开始和结束

第二个正则表达式意味着您要匹配整个输入。

于 2013-03-22T17:44:17.313 回答
2

^= 字符串/行的开头 $= 字符串/行的结尾

所以你的第一个表达式也将匹配“FOO123:12BAR”

您的第二个和第三个表达式之间的区别不在于它们匹配什么,而是它们捕获什么,因为捕获组的括号不同。

于 2013-03-22T17:46:02.647 回答