2012-04-16 16 views
11

Aşağıdaki kurallara uyan düzenli bir ifade buluyorum.Düzenli ifade, özel karakterleri içermek ve hariç tutmak

İzin Karakterler

Alfabe: a-z/A-Z
Numaraları: 0-9
Özel Karakterler: ~ @ # $^& *() - _ + = [] {} | \. ? Doğrulamak

^[[email protected]#$^*()_+=[\]{}|\\,.?: -]*$ 

kullanabilirsiniz izin karakterler için `%

+0

Karakterlerin geri kalanından ne haber? İzin var mı, değil mi? –

+0

Biriyle gelmeyi denediniz mi? Bu konuda sahip olduğunuz soru tam olarak nedir? – fivedigit

+2

Ve sadece bunu bulduğunuzu bize bildirmek istediniz? Teşekkürler. Belki de bu size de yardımcı olur: http://www.regular-expressions.info/ –

cevap

25

; <> '" /:
(boşluklar izin verilmelidir)

Özel Karakterler İzin Verilmedi yalnızca izin verilen karakterlerden oluşması gereken tam bir dizedir.Onun -'un sonunda olduğunu (aksi takdirde bir aralık olacağını ve bir kaç karakterin kaçtığını unutmayın)

geçersiz karakterler için onlar için kontrol etmek

[<>'"/;`%] 

kullanabilirsiniz.

Eğer

^(?=[[email protected]#$^*()_+=[\]{}|\\,.?: -]*$)(?!.*[<>'"/;`%]) 

kullanabileceğiniz tek bir regex hem birleştirmek için ancak lookahead sağlayan bir regex motoru gerekiyordu.

+0

regex'inizi sadece dizimde bulunan karakterlere izin vermek ve geri kalanları tüm karakterleri boşluk karakterine dönüştürmek için nasıl kullanmalıyım? –

+0

Bir soru sorun. – Joey

+0

Bu cevap bana yardımcı oldu, Teşekkürler @Joey: D +1 – Anton

7

Aslında bir soru sormadım, ama bir tane var varsayarak bu izin verilir yazabilir "Özel Karakterler" dışındaki Cevabınız ... tüm karakterleri varsayarsak

, olabilir

String regex = "^[^<>'\"/;`%]*$"; 
yalnızca bu sadece^$ ya da bu belirli disallow mantığı tabi yaparsanız, uygun gördüğünüz herhangi başka sınırlayıcı sarın izin vermek istiyorsanız
+0

Lütfen regexinizi sadece dizimde bulunan karakterlere izin vermek ve geri kalanları tüm karakterleri tek beyaz karaktere dönüştürmek için nasıl kullanmalıyım? –

+2

@ user01 'text = text.replaceAll (" [<> '\ "/;%]", ""); 'veya birden çok özel karakter ve boşluğu birleştirmek istiyorsanız' text = text.replaceAll ("[<>] '\ "/;%] +", ""); ' –

+0

çok teşekkürler, fakat benim durumumda izin verilmeyen karakterler hariç (izin verilenler söz konusu olanlarla aynı). İzin verilenleri belirterek bunu nasıl yapacağınızı önerebilirsiniz: a-z/A-Z /0-9 ~ @ # $^& *() - _ + = [] {} | \. ? : –