2011-10-11 18 views
5

Kullanıcı, özel bir karakter girerek, karakter dizisini istediği yere girmeyi durdurmak için düzenli bir exp oluşturmaya çalışıyorum, ancak başlangıç ​​noktasında dize dışında sayılar ve alt çizgi dizesi.Özel karakterleri durdurulamayan normal karakterleri durdurmak için normal başlangıçta değil

senaryoları

 abhi_3123123 valid 
     abhi___ASDFAS valid 
     3425_asdfasdf invalid 
     _asdfasdf  invalid 
     sometext(having any spcl character at any place) invalid 

sadece sadece

güncellenen kod başlangıcında ve sonunda arasına izin verilmelidir alt çizgi

benim metin kutusu textchange olay bu kodu çağırarak im

string regEx = @"^[a-zA-Z][a-zA-Z0-9_]*(?<!_)$"; 
if (System.Text.RegularExpressions.Regex.IsMatch(txtFunctionName.Text, regEx)) 
{ 
    //no error 
} 
else 
{ 
    // show error 
} 

Bu kod hata veriyor

+0

kullanarak dil im C# ya yüzden beni Tim exp @ – Abhi

cevap

1

yalnızca ASCII harfler, rakamlar izin ve alt çizgi, .NET

^[a-zA-Z]\w*(?<!_)$ 
Java

veya

^[a-zA-Z][a-zA-Z0-9_]*(?<!_)$ 

kullanmak istiyorum varsayarsak.

Açıklama:

^    # Start of string 
[a-zA-Z]  # First character: ASCII letter 
[a-zA-Z0-9_]* # Following characters: ASCII letter, digit or underscore 
(?<!_)   # Assert that last character isn't an underscore 
$    # End of string 

görün Yürüt: Screenshot from RegexBuddy

+0

olan workign yolunda şimdi EXCEP olduğunu alt çizgi durumunda, – Abhi

+0

deneyelim C# kullanarak im – Abhi

+0

arasında alt çizgilere izin vermek istiyorum Bana çalışmadığı bir test durumunu göster, lütfen. –

İlgili konular