2016-04-13 15 views
1

Aynı rakamı tekrar eden açık yanlış telefon numaralarını aramak için regex'i kullanmanın bir yolunu arıyorum. aşağıdaki gibi sayılar tüm biçimlendirilmiş ve saklanır:Telefon numaralarında yinelenen grupları bulmak için Regex'i kullanma

(111)111-1111

hiçbir şekilde metni değiştirmek mümkün değilim.

I gibi seen normal ifade çizgilerinin birkaç modifiye çalıştık.:. ^ ([0-9]) \ 1 {2} \ 1 {3} \ 1 {4} $ sayıları arasında bir süre ile tekrarlanan rakamları bulmak içindi. Ancak, ilk karakteri parantez içinde nasıl bulacağımı anlayamadım.

Herhangi bir yardım için teşekkür ederiz!

+0

Bu regex'e parantez eklemeyi denediniz mi? – usr2564301

+0

Evet, birkaç noktaya bir [(] eklemeyi denedim, ancak bu ilk grubu 111'den (111'e değiştirir), bu da –

+0

'u ekliyorum. \ ('Eklendiğinde sol taraftaki isteğe bağlı açık parantez ve '\)' isteğe bağlı kapanış parantez arayacaktır sonunda. Tabii ki, o zaman kapanış biri var ya da bir emin olmak için açılış parantez de bir pozitif ileri yönlü ya eklemeniz gerekir ekleyerek Açılışta bir tane var mı emin olmak için kapanışta pozitif bir görünüm var ... –

cevap

1

. Nokta Operatörünün amacını yanlış anlıyorsunuz. Bir periyodu eşleştirmek değil, ile eşleşir. Bu (oldukça kötü) regex, sadece - atlamak için hizmet vermektedir - ve bir şey eşleştiği için, aynı zamanda 11121113111 gibi bir şey eşleşecektir. Bu regexp yerine

Kullanım: hala olmadan çalışacaktır böylece isteğe ilk grup etrafında parantez için

^\(?([0-9])\1{2}\)?\1{3}-?\1{4}$ 

Bu kontroller; ve özellikle isteğe bağlı olarak ikinci ve üçüncü basamaklar arasında bir tire mevcudiyetini kontrol eder.

+0

Bu son derece iyi çalıştı, nokta operatöründeki açıklık için teşekkürler! –

İlgili konular