Якоря

Π—Π° умовчанням, ΠΏΠΎΠ·Π° символьним класом мСтасимвол ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ рядка (^) Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π°Ρ” ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ ΠΎΠ±Ρ€ΠΎΠ±Π»ΡŽΠ²Π°Π½ΠΈΡ… Π΄Π°Π½ΠΈΡ… (якщо Π½Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒΡΡ ΠΌΠΎΠ΄ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ΠΈ). УсСрСдині символьного класу Π²Ρ–Π½ (^) ΠΌΠ°Ρ” зовсім Ρ–Π½ΡˆΠ΅ значСння.

ΠœΠ΅Ρ‚Π°ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ рядка (^) Π½Π΅ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡƒΡ‚ΠΈ ΠΏΠ΅Ρ€ΡˆΠΈΠΌ символом ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π―ΠΊΡ‰ΠΎ Ρƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ– Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒΡΡ ΠΊΡ–Π»ΡŒΠΊΠ° Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², Π°Π»Π΅ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡƒΡ‚ΠΈ ΠΏΠ΅Ρ€ΡˆΠΈΠΌ символом Ρƒ ΠΊΠΎΠΆΠ½Ρ–ΠΉ Π· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², Π² якій Π²Ρ–Π½ Π·ΡƒΡΡ‚Ρ€Ρ–Ρ‡Π°Ρ”Ρ‚ΡŒΡΡ, якщо шаблон ΠΊΠΎΠ»ΠΈ-Π½Π΅Π±ΡƒΠ΄ΡŒ зіставний Π· Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½ΠΎΡŽ Π³Ρ–Π»ΠΊΠΎΡŽ. Π―ΠΊΡ‰ΠΎ всі Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‚ΡŒΡΡ Π· мСтасимволу ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ рядка (^), Ρ‚ΠΎ шаблон ΠΎΠ±ΠΌΠ΅ΠΆΠ΅Π½ΠΈΠΉ для Π·Π±Ρ–Π³Ρƒ Π²ΠΈΠΊΠ»ΡŽΡ‡Π½ΠΎ Π½Π° ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ рядка, ΠΊΠ°ΠΆΡƒΡ‚ΡŒ, Ρ‰ΠΎ шаблон «заякорСний». (Π†ΡΠ½ΡƒΡŽΡ‚ΡŒ ΠΉ Ρ–Π½ΡˆΡ– способи «заякорити» шаблон).

Π’Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½Ρ–ΡΡ‚ΡŒ мСтасимволу кінця рядка (Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π°Ρ€Π°, $) Π΄ΠΎΡΡΠ³Π°Ρ”Ρ‚ΡŒΡΡ Ρ‚Ρ–Π»ΡŒΠΊΠΈ Π² ΠΊΡ–Π½Ρ†Ρ– рядка Π°Π±ΠΎ Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ ΠΏΠ΅Ρ€Π΅Π΄ останнім символом Ρƒ Ρ€Π°Π·Ρ–, якщо Π½ΠΈΠΌ Ρ” ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄ рядка (якщо ΠΌΠΎΠ΄ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π΅ Π²ΠΊΠ°Π·Π°Π½Ρ–). ΠœΠ΅Ρ‚Π°ΡΠΈΠΌΠ²ΠΎΠ» кінця рядка ($) Π½Π΅ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡƒΡ‚ΠΈ останнім символом ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π―ΠΊΡ‰ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ ΠΊΡ–Π»ΡŒΠΊΠ° Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², Π°Π»Π΅ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ останнім символом Ρƒ ΠΊΠΎΠΆΠ½Ρ–ΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ–, Π² якій Π²Ρ–Π½ Ρ„Ρ–Π³ΡƒΡ€ΡƒΡ”. УсСрСдині символьного класу символ "$" Π½Π΅ ΠΌΠ°Ρ” ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСння.

ΠŸΠΎΠ²Π΅Π΄Ρ–Π½ΠΊΠ° мСтасимволу кінця рядка ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π·ΠΌΡ–Π½Π΅Π½Π° ΠΌΠΎΠ΄ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ PCRE_DOLLAR_ENDONLY Ρ‚Π°ΠΊ, Ρ‰ΠΎΠ± Π²Ρ–Π½ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π°Π² Π²ΠΈΠΊΠ»ΡŽΡ‡Π½ΠΎ ΠΊΡ–Π½Ρ†ΡŽ рядка. Π¦Π΅ΠΉ ΠΏΡ€Π°ΠΏΠΎΡ€ Π½Π΅ ΡΡ‚ΠΎΡΡƒΡ”Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΎΡ— послідовності. \Z.

ЗначСння мСтасимволів ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Ρ‚Π° кінця рядка Π·ΠΌΡ–Π½ΡŽΡ”Ρ‚ΡŒΡΡ Π―ΠΊΡ‰ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ PCRE_MULTILINE. Π£ Ρ†Ρ–ΠΉ ситуації, ΠΊΡ€Ρ–ΠΌ Π·Π±Ρ–Π³Ρ–Π² Π½Π° ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π°Π±ΠΎ Π² ΠΊΡ–Π½Ρ†Ρ– рядка, мСтасимволи Β«^Β» Ρ‚Π° Β«$Β» Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π°ΡŽΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†Ρ–Ρ— Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ після символу ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρƒ рядка Β«\nΒ». Наприклад, шаблон /^abc$/ Π·ΡƒΡΡ‚Ρ€Ρ–Ρ‡Π°Ρ”Ρ‚ΡŒΡΡ Ρƒ рядку Β«def\nabcΒ» Ρƒ багаторядковому Ρ€Π΅ΠΆΠΈΠΌΡ– Ρ– Π½Π΅ Π·ΡƒΡΡ‚Ρ€Ρ–Ρ‡Π°Ρ”Ρ‚ΡŒΡΡ Ρƒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡ–. Π’Π°ΠΊΠΈΠΌ Ρ‡ΠΈΠ½ΠΎΠΌ, шаблон який «заякорСний» Π² однорядковому Ρ€Π΅ΠΆΠΈΠΌΡ–, всі Π³Ρ–Π»ΠΊΠΈ якого, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‚ΡŒΡΡ Π· Β«^Β», Π½Π΅ Π±ΡƒΠ΄Π΅ «заякорСним» Ρƒ багаторядковому Ρ€Π΅ΠΆΠΈΠΌΡ–. ΠœΠΎΠ΄ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ PCRE_DOLLAR_ENDONLYигнорируСтся Если ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ установлСнPCRE_MULTILINE

Π‘Π»Ρ–Π΄ Π·Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΠΈ, Ρ‰ΠΎ слуТбові послідовності \A,\Z ΠΈ\z ΠΌΠΎΠΆΠ½Π° використовувати зіставлСння Π· ΠΏΠΎΡ‡Π°Ρ‚ΠΊΠΎΠΌ Ρ‡ΠΈ ΠΊΡ–Π½Ρ†Π΅ΠΌ рядка ΠΎΠ±ΠΎΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…. Π† якщо всі Π³Ρ–Π»ΠΊΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‚ΡŒΡΡ Π· \A, шаблон Π±ΡƒΠ΄Π΅Ρ‚ «заякорСн» нСзависимо ΠΎΡ‚ присутствия ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°PCRE_MULTILINE