Regex 使用'$';签名和'^';

Regex 使用'$';签名和'^';,regex,Regex,请有人解释一下下面两种表达的区别好吗 [0-9]{1,3}:[0-5][0-9] ^([0-9]{1,3}:[0-5][0-9])$ 我不知道正则表达式中^sign和$sign的确切用法 我注意到,如果我写第二个表达式如下,它没有任何区别 ^([0-9]{1,3}):([0-5][0-9])$^和$在这里 第二个正则表达式表示要匹配整个输入。^=字符串/行的开头 $=字符串/行的结尾 因此,您的第一个表达式也将匹配“FOO123:12BAR” 第二个表达式和第三个表达式之间的区别不在于它们匹配什

请有人解释一下下面两种表达的区别好吗

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

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

我不知道正则表达式中^sign和$sign的确切用法

我注意到,如果我写第二个表达式如下,它没有任何区别


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


第二个正则表达式表示要匹配整个输入。

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

因此,您的第一个表达式也将匹配“FOO123:12BAR”


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

示例清楚地解释了这一点:

^     : 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"

第一个将匹配任何包含3个数字,后跟a:和小于6的数字,后跟一个数字的字符串。第二个将只匹配包含该和仅包含该的字符串。