2011-07-28 13 views
6

Kelimeleri en fazla iki eksik harfe sahip kelimelerle eşleştirmeye çalışıyorum.Regex Eksik harflerle kelimeleri bulmak için

merhaba cehennem helo hllo ello hel heo Ağu

llo

Ben düzenli ifade h kullanabilirsiniz: Örneğin ilgi kelime 'merhaba' ben şu dizeleri eşleştirmek istediğiniz ise ? e? l? l? o? Bunları eşleştirmek için, ancak bu aynı zamanda 0, 1 ve 2 harf dizeleri de eşleştirecektir. Maçın 3-5 karakter uzunluğunda olmasını nasıl sağlayabilirim? Yardım için

teşekkürler.

cevap

6

Sen bu karakterlerin 3-5 denetlemek için önceden göz kullanabilirsiniz: Bu helphel içerdiğinden help gibi bir dizede gibi bir maç bulacaksınız

(?=[hello]{3,5})h?e?l?l?o? 

Not söyledi. Eğer durumunuza bağlı olarak kelime sınırlarını veya dizginin sonunu kontrol edebilmek istiyorsanız. Sting'in uçlarını eşleştirmek istiyorsanız, bir ^ baştan sona ve bir $ sonuna ekleyin. Sözcük sınırlarını kontrol etmek isterseniz, her iki tarafa da \b ekleyin.

+0

sayesinde – PeterM

1

Böyle bir şey deneyebilirsiniz:

[hello]{3,5} 
+0

ama 'eşleşir olleh' veya hhhhh - OP'nin bunu istemediğini sanmıyorum. ps düzeltilmiş küçük hata: 3,4 -> 3,5 – Bohemian

3

Bu ((?=.{3,})h?e?l?l?o?) işe yarayacak - senin regex, "en az 3 karakter" eklendi ile.

Muhtemelen ("hellow" gibi bir şey değildir başlangıcı) yanı sadece maç bütün kelimeleri bu istiyorum, bu yüzden başlangıç ​​ve bitiş \b ekleyin: mükemmel \b((?=.{3,})h?e?l?l?o?)\b

İlgili konular