IT & IoT Security | Cloud | It's all about the life itself

Nothing in life is as important as you think it is, while you are thinking about it.

Regular Expression Bölüm 2

Merhaba,

Yazımın ilk bölümünde çeşitli örnekler üzerinde regex yapısından bahsetmiştim. İlk bölümü incelemek isterseniz,

https://www.linkedin.com/pulse/regular-expression-b%C3%B6l%C3%BCm-1-bar%C4%B1%C5%9F-aydo%C4%9Fmu%C5%9Fo%C4%9Flu

adresini veya

https://aydogmusoglu.com/regular-expression-blm-1.html

adresini ziyaret edebilirsiniz.

Devam niteliğinde olan bu kısımda da örnekler ile regex yapısını inceleyeceğim.

Örnek 13:

String’in başlangıcındaki ve bitimindeki eşleşmeleri aramak için ^ ve $ metacharacter’leri kullanılmaktadır.

^Maaş şeklinde belirtilen bir search expression(regex) ile string’in başlangıcında Maaş kelimesini aramış oluyoruz.

Bordrosu$ şeklinde belirtilen bir search expression(regex) ile string’in bitiminde geçen Bordrosu kelimesini aramış oluyoruz.

clip_image002

Regex olarak ^Maaş kullanıldı. Örneğe bakıldığında, String’in başındaki Maaş kelimesi veya sıralı karakterler bütünü, regex ile eşleşmiş. String’de geçen diğer Maaş sıralı karakterler bütünleri, regex ile eşleşmemiştir!

clip_image004

Üstteki örnekte regex olarak Note:$ kullanıldı. String içinde Note: sıralı karakterler bütünü bir kaç kez geçmesine rağmen $ metacharacter’inin anlamına uygun olarak string’in en sonundaki eşleşme bulunmaktadır. Diğer olası Note: sıralı karakterleri eşleşmemiştir!

Örnek 14:

Belli sıra ile gruplanmış karakterleri aramak için ( ) metacharacter’lerini kullanabilirsiniz.

clip_image006

Üstteki string’de, (\wotfixes) şeklinde bir regex kullandım.

\w a-z,A-Z,0-9 aralığındaki herhangi karakteri temsil etmek için kullanılan bir metacharacter’dir.

Regex ile,

– İlk karakteri a-z,A-Z,0-9 aralığındaki bir karakter olan

– Diğer karakterleri sıralı olarak otfixes olan

eşleşmeleri aramış oluyoruz.

Aynı string için (hotfixes) regex’i kullanıldığında eşleşmelerin sayısı azalmaktadır.

clip_image008

(hotfixes) parantezlerden dolayı tam eşleşmeleri arar. H ile h farklı iki karakter olduğu için Hotfixes eşleşemezken hotfixes eşleşmektedir.

Örnek 15:

Pipe ve | şeklinde ifade edilen metacharacter ile ilgili bir kaç örnek inceleyelim.

clip_image010

Üstteki string’de \w{5}\s?(apple|grass) regex’ine uyan eşleşmeleri aramış oluyoruz.Regex’i açıklamak gerekirse;

– Ard ard beş tane a-z,A-Z,0-9 arası karakterler içeren

– Sonrasında sıfır veya bir tane boşluk içeren

– Sonrasında apple veya grass kelimesini içeren yapılar.

Seçtiğimiz regex’e uygun iki eşleşme mevcut. Son satırda neden eşleşme olmadığına dikkat ediniz! Son satırdaki sıralı karakterler bütünü *-ting ifadesi \w{5} regex’ine uymamaktadır!

clip_image012

Üstteki örnekte regex olarak [a-z|A-Z]+\s+\W?\d?\W\sPatch ifadesi kullanıldı. Açıklamak gerekirse;

– Bir veya daha fazla sayısa sıralı a-z,A-Z aralıklarından karakterler içeren

– Bir veya daha fazla sayıda boşluk içeren

– Sıfır veya bir tane non-alfanumerik karakter(? * : gibi) içeren

– Sıfır veya bir tane digit içeren

– Bir tane non-alfanumerik karakter içeren

– Bir tane boşluk içeren

– Patch kelimesi ile sonlanan eşleşmeleri anlatır.

Burada kullanıdığımız \W metacharacteri herhangi non-alfanumerik karakteri aramak için kullanılabilir.

\w ile \W arasında , \d ile \D arasında , \s ile \S arasında anlam faklılıkları vardır!

Konu hakkında yazacağım üçüncü yazımda Exchange Server 2013 sürümünde gelen Data Loss Prevention özelliği için regular express kullanımını inceleyeceğim.

Herkese sorunsuz ve neşeli günler dilerim.

Kaynaklar:

http://www.guidgenerator.com/online-guid-generator.aspx

https://aydogmusoglu.com/regular-expression-blm-1.html

http://regexr.com/

http://www.zytrax.com/tech/web/regex.htm#iteration