İki veya daha fazla ardışık karakter bulmak için RegEx


99

Bir dizenin iki veya daha fazla ardışık alfa karakter içerip içermediğini belirlemem gerekiyor. İki veya daha fazla [a-zA-Z]yan yana. Misal:

"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid

Yanıtlar:


208

Bu hile yapmalı:

[a-zA-Z]{2,}

{2}Virgül olmadan da mümkün , değil mi?
Alexander Mills

17
Alexander, birkaç şeyi açıklığa kavuşturmak için: {2}, uzunluğun 2 olması gerektiği anlamına gelir. {2,}, ifadenin uzunluğunun => 2
Shmarkus

1

Personnaly (nooby olarak) Kullandım:

[0-9][0-9]+.

Ama Simon'dan gelen çok daha iyi! = D


0

[a-zA-Z] {2,} iki veya daha fazla aynı ardışık karakter için çalışmaz. Bunu yapmak için, herhangi bir karakteri yakalamanız ve ardından yakalamayı şu şekilde tekrarlamanız gerekir:

(.) \ 1

Parantez,. Bu, herhangi bir karakteri temsil eder ve \ 1, yakalamanın sonucudur - temelde o karakterin art arda tekrarını arar. Eğer ardı ardına aynı olan karakterleri bulmak istediğinizde spesifik olmak istiyorsanız, "herhangi bir karakteri" bir karakter sınıfıyla değiştirin ...

([a-zA-Z]) \ 1

Art arda yinelenen bir küçük veya büyük harf bulur. "Abbc123" ile eşleşir, "abc1223" ile eşleşmez. Aralarında boşluk bırakmak için (yani a ab), daha sonra normal ifadede yakalanan karakter ile yineleme arasına isteğe bağlı bir boşluk ekleyin ...

([az] AZ]) \ s? \ 1


İki harfle ilgili olduğu için soruyu yanlış anladığınıza eminim. Normal ifadeniz farklı bir durum içindir: iki benzer harf!
csabinho

-4

Küçük ve büyük alfa karakterleri elde etmek için [a-zA-Z] yerine [Az] kullanabileceğinizden oldukça eminim http://www.w3schools.com/jsref/jsref_obj_regexp.asp


22
-1: Bu, w3schools'u referans veya eğitim için asla kullanmamanız gerektiğinin bir başka harika örneğidir. [A-z]harften fazla eşleşir. Özellikle, köşeli parantezler, ters eğik çizgiler, düzeltme işaretleri, alt çizgiler ve ters işaretlerle de eşleşir.
Tim Pietzcker

Gerçekten de @ TimPietzcker'ın söylediği doğru; Bahsettiği karakterler araya girer Zve abu yüzden (hatalı olarak) böyle bir modele dahil edilir. Öneriyi ikinci kez söylüyorum : w3schools kullanmayın! Bunun gibi pek çok ince kötü bilgi içeriyor.
Andrew Barber

5
Yığın üzerine ilk zing, düşündüğümden daha fazla acı veriyor. Yani, Az'ı dahil ederek [AZ istemediğim bir sürü şey ve az] içindeki her şeyi büyük harflerle büyük harf olmayanlar arasındaki tüm karakter kodlarıyla eşleşiyor mu? danshort.com/ASCIImap
Kevin

[! - +] gibi bir şey söyleyebilir miyim? Ayrıca, [AZ] ile aynı olan [65-90] gibi bir normal ifadenin içindeki karakter koduna erişmenin bir yolu var mı?
Kevin

@Kevin [65-90]eşleşecek 5- 9(dahil 6) ve 0!
csabinho
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.