Regex Kaçış Aracı

Regex özel karakterlerini kaçışlamak için metni yapıştır.

Nasıl hesaplanır?

Araç metninizi bayt bayt gezer ve şu sabit listedeki her karakterin önüne ters eğik çizgi koyar: . ^ $ * + ? ( ) [ ] { } | \ /. Geri kalan her şey, harfler, rakamlar, boşluklar, aksanlı harfler ve emoji dahil, olduğu gibi kopyalanır. Eğik çizgi, yalnızca JavaScript regex gösterimlerinde özel olmasına rağmen listededir. Tire - ve diyez # kaçışlanmaz; bu yüzden [a-z] gibi bir karakter sınıfındaki tire aralık anlamını korur. Çıktı ayrıca kaç karakterin kaçışlandığını ve özgün metnin uzunluğunu bayt değil karakter olarak bildirir. Boş metin sonuç göstermez, yalnızca boşluklardan oluşan metin ise aynen döner. Sonuç PHP, Python, JavaScript ve benzeri motorlar için düşünülmüştür; ama kullandığınız regex türünü kontrol edin.

Örnek hesaplama

price: $19.99 (USD) [net] metnini alalım. 25 karakterdir. Bunların altısı meta karakterdir: dolar işareti, nokta, iki yuvarlak parantez ve iki köşeli parantez. Her birinin önüne ters eğik çizgi gelir; harfler, rakamlar, iki nokta ve boşluklar olduğu gibi kalır; sonuç price: \$19\.99 \(USD\) \[net\] olur. Araç 25 karakterin 6 karakterinin kaçışlandığını bildirir. Desen olarak kullanıldığında nokta “herhangi bir karakter”, köşeli parantezler grup sayılmaz; özgün metinle harfiyen eşleşir.

Bu örneği dene →

Sık yapılan hatalar

  • Tirenin kaçışlandığını sanmak. Kaçışlanmaz; çıktıyı [...] gibi bir karakter sınıfının içine koyarsanız tireyi kendiniz kaçışlayın ya da en başa ya da sona alın.
  • Aynı metni iki kez kaçışlamak. Çıktıyı araca tekrar verirseniz her ters eğik çizgi ikiye katlanır ve artık gerçek bir ters eğik çizgi ile onu izleyen karakterle eşleşir.
  • Sonucu ters eğik çizgileri ikiye katlamadan bir dil dizesine yapıştırmak. Normal bir Java, C ya da JavaScript dize sabitinde, ham dize kullanmıyorsanız \. değeri \\. olarak yazılmalıdır.
  • Çıktıyı bul-ve-değiştir işleminin değiştirme tarafında kullanmak. Bu kaçışlama yalnızca desen tarafı içindir; değiştirme dizeleri farklı kurallara (örneğin $1) uyar.
  • Boşluk, satır sonu ya da diyezin özel işlem görmesini beklemek. Olduğu gibi geçerler; boşluğun ve #'in anlam taşıdığı serbest aralık kipinde bunları kendiniz kaçışlamalısınız.

Bu hesaplama hakkında

Düzenli ifadeler (regex), bazı karakterleri özel anlamı olan meta karakterler olarak ele alır — nokta herhangi bir karakterle eşleşir, yıldız işareti “sıfır veya daha fazla” anlamına gelir, parantezler desenleri gruplar, ve benzeri. Bu karakterleri harfiyen aramak istediğinizde — bir dosya adındaki noktayı veya bir fiyattaki dolar işaretini — her birini ters eğik çizgiyle kaçışlamanız gerekir, böylece regex motoru bunu bir komut değil düz metin olarak yorumlar.

Bu araç, girdiğiniz metindeki her meta karakterin — nokta, yıldız, artı, soru işareti, parantezler, köşeli parantezler, süslü parantezler, dikey çizgi, şapka ve dolar işareti ile ters eğik çizginin kendisi dahil — başına otomatik olarak ters eğik çizgi ekleyerek herhangi bir regex desenine güvenle yerleştirebileceğiniz bir dize üretir. Bu, JavaScript'in RegExp.escape, Python'un re.escape veya PHP'nin preg_quote fonksiyonlarının programatik olarak yaptığı işin aynısıdır.

Geliştiriciler, bir arama kutusu gibi kullanıcı girdisinden dinamik olarak bir regex oluştururken bu araca başvurur; kaçışlanmamış bir özel karakter ya sözdizimi hatası verir ya da sessizce yanlış sonuçlarla eşleşir.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar