Regex Test Aracı

/ /

Bir düzenli ifade yazın, test edilecek metni yapıştırın; araç deseni çalıştırır ve bulduğu her eşleşmeyi listeler. Her sonuç eşleşmenin nerede başladığını ve her yakalama grubunun içeriğini gösterir; böylece desenin tam olarak neyi aldığını görürsünüz. Desenin davranışını değiştirmek için büyük/küçük harf duyarsız, çok satırlı ve dotall bayraklarını açın.

Bir regex nasıl test edilir

  1. 1

    Deseninizi girin

    İfadeyi sınırlayıcılar olmadan yazın; araç sizin için `/ /` içine alır. Geçersiz bir desen, sessizce başarısız olmak yerine anlaşılır bir hata mesajı gösterir.

  2. 2

    Bayrakları seçin

    İhtiyacınıza göre eşleştirmek için `i` (büyük/küçük harf duyarsız), `m` (çok satırlı) veya `s` (dotall) açın.

  3. 3

    Test metnini yapıştırın

    Aramak istediğiniz metni ekleyin. Araç tümünü tarar ve yalnızca ilkini değil her eşleşmeyi bulur.

  4. 4

    Eşleşmeleri inceleyin

    Her eşleşme metindeki konumunu (offset), tam eşleşmeyi ve her numaralı yakalama grubunu gösterir.

Araç size ne gösterir

Bir deseni kafadan ya da hızlı bir grep ile çalıştırmak, bir şeyin eşleşip eşleşmediğini söyler. Araç ayrıca şunları gösterir:

  • Her eşleşme, konumuyla birlikte. Her zaman metnin tamamını arar ve her eşleşmeyi başladığı karakter offset’iyle bildirir.
  • Hangi grup neyi yakaladı. Her eşleşme, tam eşleşmesine ve numaralı yakalama gruplarına ayrılır; böylece bir (...) içeriğinin beklediğiniz parçayı yakaladığını doğrularsınız.
  • Bayrakların neyi değiştirdiği. i, m veya s açın ve yeniden test edin; büyük/küçük harf duyarsızlığının, çok satırlının veya dotall’ın sonucu nasıl değiştirdiğini görün.

Bayraklar, sade bir dille

Bayrak Ad Neyi değiştirir
i Büyük/küçük harf duyarsız A, a ile de eşleşir ve tersi
m Çok satırlı ^ ve $, yalnızca tüm metnin değil her satırın başında ve sonunda eşleşir
s Dotall ., satır sonu karakterleriyle de eşleşir

Eşleştirme her zaman geneldir: araç metindeki her eşleşmeyi döndürür, dolayısıyla ayarlanacak ayrı bir “global” bayrak yoktur. Desenler Unicode desteğiyle PCRE motorunda çalışır; böylece \w ve \d gibi sınıflar uluslararası metinde tutarlı davranır.

Bunun bulmaya yardımcı olduğu yaygın regex sorunları

Belirti Olağan neden
Her şeyi kapsayan tek bir dev eşleşme .* açgözlüdür; .*? veya [^"]* gibi olumsuzlanmış bir sınıf kullanın
^ veya $ yalnızca bir kez eşleşiyor Çok satırlı metinde m bayrağı eksik
. satır sonlarında duruyor s bayrağı eksik
Yakalama grupları beklenmedik sırada İç içe ( grup numaralarını kaydırır; onları soldan sağa sayın
Yavaş çalışan bir desen Örtüşen alternatifler üzerinde iç içe * veya + ağır geri izlemeye yol açar

Daha hızlı ve güvenli desenler için ipuçları

  • Eşleşme baştan başlıyorsa ^ ile sabitleyin; böylece motor tüm metni taramaz.
  • Alternatif (a|b|c) yerine karakter sınıfını ([abc]) tercih edin; sınıflar her büyük motorda daha hızlıdır.
  • Sonlandırıcıyı bildiğinizde açgözlü .* yerine [^"]* gibi olumsuzlanmış bir sınıf kullanın; böylece geri izleme olmaz.

Sık Sorulan Sorular

Deseninizi, PHP içine gömülü motor olan PCRE ile Unicode modu açık şekilde çalıştırır. \d, \b ve lookaround gibi PCRE’ye özgü sözdizimi beklendiği gibi çalışır. Deseni JavaScript, Python veya başka bir dilde kullanacaksanız, yayına almadan önce küçük sözdizimi farklarını kontrol edin.

Her eşleşmeyi. Araç her zaman metnin tamamını arar, bu yüzden ayarlanacak ayrı bir “global” bayrak yoktur. Her eşleşme metindeki konumuyla listelenir.

Evet. Her eşleşme tam eşleşmeye ve her numaralı yakalama grubuna ayrılır; böylece her (...) içeriğinin metnin hangi parçasını yakaladığını doğrularsınız.

i eşleştirmeyi büyük/küçük harften bağımsız yapar, m her satır sınırında ^ ve $ eşleşmesini sağlar, s ise . karakterinin satır sonlarıyla eşleşmesine izin verir. Bunları açıp kapatın ve sonuçları karşılaştırmak için yeniden test edin.

Araç, sessizce hiç eşleşme döndürmek yerine sorunu açıklayan anlaşılır bir hata mesajı gösterir; örneğin kapatılmamış bir köşeli parantez veya tamamlanmamış bir grup.

İlgili Araçlar

Araç diğer dillerde mevcuttur