Dev Arksoft
  • Arksoft Developer Network
  • Ağustos 2023
    • Angularda DOM (Document Object Model) Manipülasyonu
    • Angular’da Routing
    • Representational State Transfer (REST)
    • .Net Framework için Local NugetPackage
    • Agile Nedir?
  • Temmuz 2023
    • Angular HTTP Interceptors
    • Angularda Promise ve Observable
    • Mongo DB Kullanımı
  • Haziran 2023
    • Angular Validators
  • Mayıs 2023
    • Docker Uzerine Redis Kurulumu ve .Net Core ile Redise Erişim
  • Nisan 2023
    • Angular 14 Componentler Arası İletişim
  • Şubat 2023
    • JMeter ile Performans Testi
  • Ocak 2023
    • Windows Giriş Ekranında C# Form Açmak
  • Temmuz 2022
    • Regular Expressions
  • Haziran 2022
    • RSA Şifreleme
    • AutoMapper Kullanımı
    • Permutasyon ve Kombinasyon
    • Generic Repository Pattern
    • Levenshtein Algoritması
    • HTML 5’e Giriş
    • Graph Yapılar
  • Mayıs 2022
    • IQueryable IEnumerable Farklar
    • Sıralama Algoritmaları
  • Şubat 2022
    • ADFS Custom 2FA Integration
    • Reacta Giriş ve Reactın Temel Prensipleri
    • TypeScript Kullanımı
    • Serialization Kullanımı
    • Log4Net Kullanımı
    • Collections Yapıları
    • Windows Service Projesini Debug Etme ve Harici Exe Çalıştırma
    • Culture ve DateTime Kullanımı
    • Reflection Kullanımı
    • Steganografi Teknikleri
    • ElasticSearch Kullanımı
    • SWAGGER ve JWT TOKEN BASED WEBAPI Kullanımı
    • LINQ Komutları Kullanımı
    • Image Processing İşlemleri Kullanımı
Powered by GitBook
On this page
  1. Temmuz 2022

Regular Expressions

Husamettin Elalmis

PreviousWindows Giriş Ekranında C# Form AçmakNextRSA Şifreleme

Last updated 2 years ago

Regular Expressions

Merhaba arkadaşlar, bu yazıda sizlere Regular Expressions kavramından bahsecedeğim.

Regular Expressions Nedir?

  • Düzenli ifade patternleri anlamına gelir.

  • String arama ve değiştirme işlemlerinde kullanılır.

  • Kendine has pattern syntax dili vardır.

Regular Expressions Pattern Dili

  • https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference

  1. Temel Eşleştirmeler

"Bir dalda bir Kartal biri kalkar biri sarkar 123 adet kartalın 12 tanesi 3 metredir" cümlesini örnek alalım,

  • Regular expression, case sensitive'dir. Yani büyük küçük harf duyarlıdır.

  • "bir" kelimesini aradığımızda sırasıyla b, ardından I, ardından r harflerinin geldiği yerleri bize döndürür, özetle basit bir kelimeyi "bir" yazarak arayabiliriz.

  • bir geçen yerleri bul

  1. Meta Karakterler

Meta karakterler, gruplamak ve/veya joker kullanmak için kullanılır.

Meta Karakter

Açıklama

.

Herhangi bir karakter yerine geçer (satır sonu hariç)

[]

Karakter grubunu temsil eder

[^]

İçermeyen karakter grubunu temsil eder

*

Sıfır adet veya daha fazla tekrar eden karakteri temsil eder

+

1 veya daha fazla tekrar eden karakteri temsil eder

?

Opsiyonel karakteri temsil eder. Hiç geçmeyedebilir.

{n,m}

En az n eleman, en fazla m eleman olanı temsil eder

(xyz)

Karakter grubunu temsil eder, xyz karakterlerini gruplar

|

Alternatif (of) anlamında kullanılır

\

Escape karakter kullanmak içindir ([]{}().*+?^$\|)

^

Satır başını temsil eder

$

Satır sonunu temsil eder

  • İlk harfi önemli değil, ir olan yerleri bul

  • a ile f arasındaki karakteri içerenleri bul (a,b,c,d,e,f)

  • l ile başlamayan kar kelimelerini bul (kalkar pas geçildi)

  • a harfinin tekrar eden yerlerini bul

  • a harfinin 1 veya daha fazla tekrar eden r ile biten yerleri bul

  • a rile biten, K harfi ile başlıyorsa da dahil edebilirsin

  • [0-9] arası rakamlardan herhangi 2 tanesi yanyana gelmiş olanlar

  • [0-9] arası rakamlardan herhangi 2 tanesi yanyana gelmiş olanlar, en fazla 3 tanesi yanyana gelebilir olanlar

  • [0-9] arası rakamlardan 2 tanesi yanyana gelmiş ve uzunluğu (begin) 2 karakter olan

  • B veya s karakterlerini içeren

  • B veya K veya 2 karakterlerini içeren

  • Satır başı B veya b ve ardından ir ile başlıyorsa

  • Satır sonu dir ile bitiyorsa

  1. Kısayol Karakter Setleri

Kısayol

Açıklama

.

Herhangi bir karakter içeriyorsa

\w

[a-zA-Z0-9_] karakter setini temsil eder

\W

Alfanumerik olmayan karakterleri temsil eder [^\w]

\d

[0-9] geçen digitler

\D

Digit olmayanlar [^\d]

\s

Whitespace karakterler [\t\n\f\r\p{Z}]

\S

Whitespace olmayan karaketerler [^\s]

  • En az 5 karakter uzunluğunda olanlar

  • 3 karakter uzunluğunda olanlar

  • Tüm digit olan karakterler

  • 2 karakter uzunluğunda digit olan karakterler

Program.cs

using System;

using System.Text.RegularExpressions;

namespace RegexArge

{

class Program

{

static void Main(string[] args)

{

Console.BackgroundColor = ConsoleColor.White;

Console.Clear();

string input = "Bir daldaa bir Kartal biri kalkar biri saarkar 123 adet kartalın 12 tanesi 3 metredir"; var patterns = new string[] { "bir", ".ir", "[a-f]", "[^l]kar", "[a]*", "[a]+r", "[K]?ar", "[0-9]{2}", "[0-9]{2,3}", @"\b[0-9]{2}\b", "(b|s)", "(B|K|2)", @"^(B|b)ir", "dir$", @"\w{5}", @"\b\w{3}\b", @"\d", @"\b\d{2}\b" }; var line = 0; foreach (var pattern in patterns)

{

var regex = new Regex(pattern);

MatchCollection matches = regex.Matches(input);

Console.SetCursorPosition(0, line);

Console.ForegroundColor = ConsoleColor.Blue;

Console.WriteLine(pattern);

Console.SetCursorPosition(0, line + 1);

Console.ForegroundColor = ConsoleColor.Black;

Console.WriteLine(input);

foreach (Match match in matches)

{

var val = match.Value;

Console.SetCursorPosition(match.Index, line + 1);

Console.ForegroundColor = ConsoleColor.Red;

Console.Write(val);

}

line += 3;

}

Console.ReadLine();

}

}

}

Sonuç

  • Bu dokumanda Regular Expressions kavramını uygulamalı görmüş olduk

  • Text ayıklama, eşleştirme, değiştirme işlemlerinde sıkça kullanılır.

  • Regex patternlerin yelpazesi çok geniş olup, zamanla el refleksi oluşmaktadır.

Saygılarımla,

Hüsamettin ELALMIŞ – 02.07.2022

husamettin.elalmis@arksoft.com.tr