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 существует способа отличить начало слова от конца.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Якоря

Из книги автора

Якоря Напоследок рассмотрим еще одну возможность, предлагаемую нам языком HTML и способную сильно упростить посетителям чтение длинных текстов. Хотя она и не относится к гиперссылкам напрямую, но действует совместно с ними.Это так называемые якоря (anchors). Они не указывают


3.4. Якоря

Из книги автора

3.4. Якоря Якорь — это специальное выражение, соответствующее позиции в строке, а не конкретному символу или последовательности символов. Позже мы увидим, что это простой частный случай утверждения нулевой длины, то есть соответствия, которое не продвигает просмотр