3.4. Якоря
3.4. Якоря
Якорь — это специальное выражение, соответствующее позиции в строке, а не конкретному символу или последовательности символов. Позже мы увидим, что это простой частный случай утверждения нулевой длины, то есть соответствия, которое не продвигает просмотр исходной строки ни на одну позицию.
Наиболее употребительные якоря уже были представлены в начале главы. Простейшими из них являются ^ и $, которые соответствуют началу и концу строки символов.
string = "abcXdefXghi"
/def/ =~ string # 4
/аbс/ =~ string # 0
/ghi/ =~ string # 8
/^def/ =~ string # nil
/def$/ =~ string # nil
/^аbс/ =~ string # 0
/ghi$/ =~ string # 8
Впрочем, я немного уклонился от истины. Эти якоря на самом деле соответствуют началу и концу не строки символов (string), а строки текста (line). Вот что произойдет, если те же самые образцы применить к строке, внутри которой есть символы новой строки:
string = "abc def ghi"
/def/ =~ string # 4
/abc/ =~ string # 0
/ghi/ =~ string # 8
/^def/ =~ string # 4
/def$/ =~ string # 4
/^abc/ =~ string # 0
/ghi$/ =~ string # 8
Однако имеются якоря A и , которые соответствуют именно началу и концу самой строки символов.
string = "abc def ghi"
/Adef/ =~ string # nil
/def/ =~ string # nil
/Aabc/ =~ string # 0
/ghi/ =~ string # 8
Якорь z отличается от тем, что последний устанавливает соответствие перед конечным символом новой строки, а первый должен соответствовать явно.
string = "abc def ghi"
str2 << " "
/ghi/ =~ string # 8
/Aabc/ =~ str2 # 8
/ghiz/ =~ string # 8
/ghiz/ =~ str2 # nil
Можно также устанавливать соответствие на границе слова с помощью якоря или с позицией, которая не находится на границе слова (B). Примеры использования метода gsub показывают, как эти якоря работают:
str = "this is a test"
str.gsub(//,"|") # "|this| |is| |a| |test|"
str.gsub(/В/, "-") # "t-h-i-s i-s a t-e-s-t"
He существует способа отличить начало слова от конца.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Якоря
Якоря Напоследок рассмотрим еще одну возможность, предлагаемую нам языком HTML и способную сильно упростить посетителям чтение длинных текстов. Хотя она и не относится к гиперссылкам напрямую, но действует совместно с ними.Это так называемые якоря (anchors). Они не указывают
3.4. Якоря
3.4. Якоря Якорь — это специальное выражение, соответствующее позиции в строке, а не конкретному символу или последовательности символов. Позже мы увидим, что это простой частный случай утверждения нулевой длины, то есть соответствия, которое не продвигает просмотр