Bu yazıda PCRE olan \B ve \b karakter sınıflarını örnekler ile anlatmaya çalışacağım.
Öncelikle \B ve \b’yi kısaca tanımlayalım.
\B: birleşik bir ifadenin bir kısmını yakalamak için kullanılır; non-word boundary (örnek: /\Bna/ ile “yanına” ve “salına” gibi sonu “na” ile biten kelimeleri yakalar)
\b: kelime sınırı ifadesi; kelimeleri yakalamak için kullanılır; word boundary (örnek: /\berman\b/ ile “erman” kelimelerini yakalar)
Örnek
Phenomenon grubunun Thousand Foot Krutch şarkısını severim. Sebeplerinden birisi bazı dörtlüklerinin kafiyeli olması.
Kafiyeli olan 2 dörtlüğü:
…
Destination for navigation
Man up ya stations, feel the sensation
Surround invasion with communication
Move quick, we might avoid contamination
…
Don’t let these spiders crawl up beside us
They want to bite us, inject the virus
Raise up your lighters, praise to the Righteous
We need You to guide us
Get prepared to go!
…
Şimdi bu dörtlükler içinde kafiyeli olan bazı kelimeleri bulalım. Ben zengin kafiyeli olan, sonu “ion” ile biten kelimeleri bulmak için regex yazacağım.
/\b\w+\Bion\b$/
Sonuç:
Destination for navigation
Man up ya stations, feel the sensation
Surround invasion with communication
Move quick, we might avoid contamination
O regex ile yukarıdaki gibi navigation, sensation, communication ve contamination kelimelerini bulmuş olacağız.
/\b\w+\Bion\b$/ deseninin açıklaması:
– \b…\b: kelime sınırı; yakalanacak ifadenin kelime olduğunu belirtir
– \w+: [a-zA-Z0-9_] kelimenin sınıfındaki karakterlerden oluşacağını belirtir
– \Bion: kelimenin sonu “ion” ile bitmesi gerektiğini belirtir
– $: yakalanacak ifadenin satır sonunda olması gerektiğini belirtir
Anlatacaklarım bu kadar. Kolay gelsin.