Karakter sayısını 10 ile sınırlamak için normal ifade


189

Sadece küçük harflere ve 10 karaktere kadar izin verecek normal bir ifade yazmaya çalışıyorum . Şimdiye kadar sahip olduğum şey şöyle:

pattern: /^[a-z]{0,10}+$/ 

Bu işe yaramıyor ya da derlenmiyor. Ben sadece bu küçük harflere izin verecek bir çalışma vardı:

pattern: /^[a-z]+$/ 

Ama karakter sayısını 10 ile sınırlamam gerekiyor.


4
{} Ve + aynı şeyi yapıyor (sayıyor), bu nedenle bunlar gereksiz, dolayısıyla hata.
09:36

1
'+' İşaretini / ^ [az] {0,10} + $ / dizininden düşürmelisiniz. / ^ [Az] {0,10} $ /
SO Kullanıcısı olmalıdır

1
^[a-z]{0,10}+$Bazı dillerdeki desen derlemelerinin ve bazı dikkat çekici olanların Java, Perl (5.10+), PHP, Ruby (1.9+) olduğunu unutmayın. Daha fazla ayrıntı için bu sayfaya bakın .
Jerry

Ayrıca bkz. Evrensel çözüm:
ileriye dönük

Yanıtlar:


357

Olay sayısını kontrol etmek için süslü parantez kullanabilirsiniz. Örneğin, bu 0 ila 10 anlamına gelir:

/^[a-z]{0,10}$/

Seçenekler:

  • {3} Tam 3 tekrar;
  • {6,} En az 6 tekrar;
  • {2,5} 2 ila 5 tekrar.

Normal ifade referansına bakın .

İfadenizin kapanış küme ayracı sonrasında bir + değeri vardı, dolayısıyla hata.


Başlangıcını ommit zorunda kor ile krom dev araçlarında ^gibi bir isim ile mülkiyet maçı SADECE isteklerine 1234ya 5678, ben $ işareti eklemek vardı
Devin G Rhode

11

/^[a-z]{0,10}$/çalışmalı. /^[a-z]{1,10}$/en az bir karakteri eşleştirmek istiyorsanız, olduğu gibi /^[a-z]+$/.


9

Dizenin sonuna açgözlü eşleme eklemek yararlı olabilir, bu nedenle 10'dan büyük dizeleri kabul edebilirsiniz ve normal ifade yalnızca ilk 10 karaktere geri döner. /^[a-z0-9]{0,10}$?/


8

Bu, kullandığınız programa bağlıdır. Farklı programlar ( Emacs , vi , sed ve Perl ) biraz farklı düzenli ifadeler kullanır. Bu durumda, ilk desende son "+" işaretinin kaldırılması gerektiğini söyleyebilirim.


7
grep '^[0-9]\{1,16\}' | wc -l

Sayıları limitli tam eşleme sayısı ile verir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.