Yalnızca 2 veya 5 basamaklı sayılarla eşleşen normal bir ifadeyi nasıl yazarım?2 veya 5 basamaklı normal ifade
Bugüne kadar bu var ama 2 ila 5 basamak ile herhangi bir sayıda eşleşir.
^\d{2,5}$
Yalnızca 2 veya 5 basamaklı sayılarla eşleşen normal bir ifadeyi nasıl yazarım?2 veya 5 basamaklı normal ifade
Bugüne kadar bu var ama 2 ila 5 basamak ile herhangi bir sayıda eşleşir.
^\d{2,5}$
için 3 isteğe bağlı bir basamak:
^\d{2}\d{3}?$
Not Bazı normal ifade motorlar için sorunlara neden gibi görünen bir ungreedy modifiye gibi, herhangi bir tekrarlama değiştiricisi (hatta sabit bir) sonra ?
yorumlamak olacağı iki basamaklı durum. Eğer bu karşılaşırsanız, kullanın:
^\d{2}(?:\d{3})?$
Sen this great tutorial bazı regex temelleri üzerinde okuyabilir. Bu arada
, yukarıdaki kullanarak münavebe buna etkili bir eşdeğer (ama marjinal daha verimli) 'dir:^(?:\d{2}|\d{5})$
(. Sadece sana başka regex kavramı gösteren uğruna)
/^\A\d{2}\z$|^\A\d{5}\z$/
A
girişin başlangıcı ve z
girişinin anlamı anlamına gelir.
; js veya perl hakkında emin değilim.
-1. Java'da birincisi yanlış. "?" Tembel eşleşmeyi gösterir. – nhahtdh
@nhahtdh, yalnızca {..} 'bir aralıktaysa mı, değil mi? –
@ m.buettner: Tekrarlama sayısı sabit olduğunda normalden farklı düşünmüyorum, ama “?” Tembellik olarak yorumlanacaktır. – nhahtdh