Regex (düzenli ifadenin kısaltması), bir arama kalıbını tanımlayan karakter dizisidir. Regex; basit kelime aramalarından karmaşık metin işleme görevlerine kadar, metinleri eşleştirmek, bulmak, değiştirmek veya doğrulamak için kullanılır. Tüm büyük programlama dilleri yerleşik bir regex motoru içerir; bu da onu geliştiricilerin araç kutusundaki en evrensel araçlardan biri yapar.
Düzenli ifadeleri etkileşimli olarak test etmek ister misiniz?
Regex Test Aracını Aç →Düzenli ifadeler, biçimsel dil teorisinden doğmuştur. Matematikçi Stephen Cole Kleene, 1950'lerde bunları düzenli dilleri tanımlamak için bir gösterim olarak tanıttı. Ken Thompson, regex'i UNIX metin editörü ed'de ve ardından grep'te (1973) uyguladı. Perl (1987) sözdizimini önemli ölçüde genişletti ve günümüz dillerinin büyük çoğunluğunun takip ettiği PCRE (Perl Uyumlu Düzenli İfadeler) dilini popüler hale getirdi.
Bir düzenli ifade, sınırlayıcılar arasına yazılan bir kalıptır (JavaScript'te: /kalıp/bayraklar). Kalıp; literal karakterler, özel meta karakterler ve niceleyiciler içerebilir.
/* E-posta doğrulama regex'i */
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
/* Eşleşir: ornek@alan.com */
/* Eşleşmez: bu-email-degil */
kedi, "kedi" dizesini eşleştirir[aeıiouöü] herhangi bir ünlüyü, [a-z] herhangi bir küçük harfi, [^0-9] rakam olmayan herhangi bir karakteri eşleştirir^ dizenin başını, $ dizenin sonunu eşleştirir* (0 veya daha fazla), + (1 veya daha fazla), ? (0 veya 1), {n} (tam olarak n), {n,m} (n ile m arasında). yeni satır hariç herhangi bir tek karakteri eşleştirirkedi|köpek, "kedi" veya "köpek"i eşleştirir(abc) yakalayan grup, (?:abc) yakalamayan grup\ koyarak literal olarak kullanılır: \. bir noktyı eşleştirir\d (rakam), \w (kelime karakteri), \s (boşluk) ve negasyonları \D, \W, \S^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$https?://[^\s]+\d{4}-\d{2}-\d{2}\+?[\d\s\-\(\)]{7,15}\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b#[0-9a-fA-F]{3,6}g — global — yalnızca ilkini değil, tüm eşleşmeleri buli — büyük/küçük harf duyarsız — /merhaba/i, "Merhaba", "MERHABA", "merhaba"yı eşleştirirm — çok satırlı — ^ ve $ her satırın başını ve sonunu eşleştirirs — dotAll — . aynı zamanda yeni satır karakterlerini de eşleştirir. * + ? ^ $ { } [ ] | ( ) \ literal olarak kullanılmak istendiğinde \ ile kaçırılmalıdır*, +) mümkün olduğunca çok eşleştirir; tembel eşleşme için ? ekleyin (*?, +?)Regex (düzenli ifade), bir arama kalıbını tanımlayan karakter dizisidir. Metinlerde eşleştirme, bulma, değiştirme veya doğrulama amacıyla kullanılır. Tüm büyük programlama dilleri düzenli ifadeleri destekler.
Regex, regular expression (düzenli ifade) kelimesinin kısaltmasıdır. Bu terim, 1950'lerde matematikçi Stephen Cole Kleene tarafından geliştirilen biçimsel dil teorisinden gelmektedir.
Regex; giriş doğrulama (e-posta, telefon, şifre), metin editörlerinde ara ve değiştir, log dosyası ayrıştırma, web çerçevelerinde URL yönlendirme ve yapılandırılmamış metinden veri çıkarma için kullanılır.
Çoğu dil, PCRE tabanlı ortak bir sözdizimini destekler. JavaScript, Python, Java ve PHP'nin tümü PCRE uyumlu motorlar kullanır; ancak bayraklar ve gelişmiş özellikler diller arasında farklılık gösterebilir.
* niceleyicisi, önceki öğenin sıfır veya daha fazla tekrarını eşleştirir. + niceleyicisi, bir veya daha fazla tekrarı eşleştirir. Yani a* boş dize dahil eşleşirken, a+ en az bir "a" gerektirir.
^ karakterinin iki anlamı vardır. Bir kalıbın başında, dizenin başlangıcını (çok satırlı modda satır başlangıcını) eşleştiren bir çıpa noktasıdır. Bir karakter sınıfının içinde [^abc] ise olumsuzlama anlamına gelir — listelenenler dışındaki herhangi bir karakteri eşleştirir.