2011-02-17 11 views
12

:RegEx ben aşağıdaki gibi ya boş veya içinde 1 veya 2 numara olabilir bir dizeyle eşleşen çalışıyorum 0-2

"" (boş) "1 " " 23 "

Daha fazla sayı içeren veya sayısal olmayan karakterler içeren dize eşleşmemelidir. "Sayılar 0'dan 9'a 0 ila 2 kez meydana gelen"

[0-9] {0,2}

söylemek okumak

: My yakın tahminim regex olduğunu Bununla birlikte, pratikte regex'in "333" gibi uzun dizelerle de eşleştiğini görüyorum. Normal ifadelerde dize uzunluğunu kısıtlamak nasıl mümkün olabilir? ^ ve $ karakter çapalar sırasıyla dize başını ve sonunu maç vardır -

^[0-9]{0,2}$ 

Neredeyse vardı:

+0

Hangi dili kullanıyorsunuz? – Donut

+1

C# benim seçimimdir. –

cevap

36

aşağıdaki normal ifade kullanın. çapa üzerinde daha derinlemesine bir tartışma için

, here bkz:

[Çapalar] hiç bir karakteri uymuyor. Bunun yerine, karakterlerden önce veya sonra bir konumla eşleşirler. Normal ifadeyi belirli bir konumda "sabitlemek" için kullanılabilirler.

5

başlangıç ​​ve dize sonu için meta kullanın: Bunları kullanmıyorsanız

^[0-9]{0,2}$ 

, bu dizede yerde eşleşir ve eşleşen "12", "bir parçasıdır 123" .

^[0-9]{0,2}$ 

Aksi regex mutlu alt dizeleri eşleşir:

İlgili konular