Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Котви

Начало и край на низа

Две котви отбелязват краищата на низа:

  • ^ съвпада в самото начало на низа
  • $ съвпада в самия край

Използвайте ^, за да изисквате съвпадението да започва от началото:

say so 'http://example' ~~ /^ http /; # True
say so 'see http://x'   ~~ /^ http /; # False

Вторият низ съдържа http, но не в началото, така че закотвеният шаблон се проваля.

Слагането на ^ и $ около шаблон го принуждава да съвпадне с целия низ, без нищо да остава от която и да е страна:

say so 'hello'       ~~ /^ hello $/; # True
say so 'hello world' ~~ /^ hello $/; # False

Това е много често използван похват за проверка — например „точно число ли е този низ?“:

say so '2025' ~~ /^ \d+ $/; # True
say so '20a5' ~~ /^ \d+ $/; # False

Котви за ред

Когато низът има няколко реда, партньорите ^^ и $$ съвпадат в началото и края на всеки ред, а не на целия низ. Разликата спрямо ^ и $ изпъква веднага щом текстът, който търсите, не е на първия ред: единичните котви виждат само целия низ и се провалят, докато удвоените съвпадат на кой да е ред.

say so "cat\ndog" ~~ /^  dog  $/;  # False
say so "cat\ndog" ~~ /^^ dog $$/;  # True

Тук \n започва втори ред. ^^ изисква dog да стои в началото на ред, а $$ — в края на ред; и двете важат на втория ред, така че удвоените котви успяват там, където единичните не могат.

Практика

Направете 1 тест върху съдържанието на тази тема.

Навигация в курса

Котви   |   Тест — Котви на низа


💪 Или преминете направо към упражненията в този раздел.