2013-03-22 3 views
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])$

+0

Первый из них будет соответствовать любой строке, _contains_ 3 цифры, за которыми следует: за которым следует цифра меньше, чем 6 с последующей цифрой. Второй будет соответствовать только строкам, которые содержат это и ТОЛЬКО это. – Lucas

ответ

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" 
2

^ = начало строки/строки $ = конец строки/строки

Таким образом, ваше первое выражение будет также соответствовать «FOO123: 12BAR»

Разность между вторым и третьим выражением не в что они соответствуют, но что они захват, поскольку скобки для групп захвата различаются.

Смежные вопросы