Regex: \B ve \b kullanımı (regex \B and \b)

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.