2016-12-22 57 views
0

我在正則表達式新的,寫這個正則表達式:
爲什麼我的正則表達式在我的數據中不正確?

if (Regex.IsMatch(txtName, @"^[آ-ی]$")) 
      { 
       int x = 0; 
      } 
      else 
      { 
       message += Environment.NewLine + "فیلد نام معتبر نمی باشد"; 

      } 


txtName value is :ابراهیم 


但是,當運行了,如果塊,否則段來看,爲什麼感謝?

+2

我假設你的正則表達式尋找字母字符。事實上,你的字符串是否在你指定的範圍內? (我實際上沒有閱讀有關的語言,所以不可能知道)。 – EJoshuaS

+0

我不會同時使用'^'(開始行)和'$'(結束行),特別是在右側的語言中。 – jdweng

+1

嘗試使用最近可用的有用在線解析器可能很有用。這只是第一個提出谷歌搜索的網站:http://regexstorm.net/tester查看錶達式如何處理各種輸入可能會有幫助。或者嘗試一次重建你的表情。 –

回答

1
@"^[آ-ی]$" 

我不認爲你想馬赫只串用單個字符,所以儘量

@"^[آ-ی]+$" 
0

您可以在這裏使用Named Blocks阿拉伯字符。

實施例:

Regex.IsMatch(txtName, @"(\p{IsArabic}+(\s)?)+"); 

這將匹配的一個或多個阿拉伯字符,隨後的零個或一個空白字符的一個或更多次的模式。經測試與您的輸入字符串一起工作。

下面是MSDN with additional examples更深入的參考。

+0

非常酷,不知道這個!它看起來像'\ p {IsArabic}'匹配[所有阿拉伯字符](http://unicode.org/charts/PDF/U0600.pdf)(即它將匹配標點和其他「非字母」字符) ,你能給出一個例子,說明如何將其與'\ p {L}'結合起來才能爲阿拉伯字母返回true? – Quantic

相關問題