none
關於C# RegularExpressions RRS feed

  • 問題

  • 這是我原來的寫法 >>>> System.Text.RegularExpressions.Regex m_r= new System.Text.RegularExpressions.Regex("^([0-9]{3}$");
    請問如果要有"兩個以上 "的規則呢~例如0-9要十個 或 a-z 要五個
    這樣該如何加在一個判斷式呢
    2009年7月22日 上午 07:52

解答

  • HI,

    You should use the symbol "|"

    This regular pattern will like  "^([0-9]{10}|[a-z]{5})$"

    http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 weison 2009年7月22日 上午 10:27
    2009年7月22日 上午 09:36

所有回覆

  • 分成兩個可以嗎 ?

    System.Text.RegularExpressions.Regex m_r1= new System.Text.RegularExpressions.Regex("^([0-9]{10}$");
    System.Text.RegularExpressions.Regex m_r2= new System.Text.RegularExpressions.Regex("^([a-z]{5}$");

    if (m_r1.IsMatch(strNumber) || m_r2.IsMatch(strNumber))
    {

    }


    .NET菜鳥自救會 http://www.dotblogs.com.tw/chou/
    2009年7月22日 上午 08:35
    版主
  • HI,

    You should use the symbol "|"

    This regular pattern will like  "^([0-9]{10}|[a-z]{5})$"

    http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 weison 2009年7月22日 上午 10:27
    2009年7月22日 上午 09:36
  • 建議再提供一些輸入值的範例:
    例如你要的是 "0123456789", 對於"0a1b2c3456789"這樣是不合法!?(有10個0-9,但中間穿插其他字元)
    或是你要的是 "abcde", 但"a1b2c3d4e"是不合法的!?(有5個a-z,但中間穿插其他字元)
    如果是中間可以穿插其他字元, 可以考慮用Regex.Replace().
    例如將0-9的排除掉後算字串長度是否大於10, 或是a-z的排除掉後算字串長度是否大於5:
    if(Regex.Replace(strTest,"[^0-9]", string.Empty).Length>=10 
    || Regex.Replace(strTest,"[^a-z]", string.Empty).Length>=5)
    {
    //do something
    }
    2009年7月22日 上午 10:01
  • 感謝各位高手的解答~我已經由你們的解答找到答案~你們給我很大的幫助~感謝~上面的高手是否有部落格~

    yilin liu??  我有參考你的文章喔

    2009年7月22日 下午 02:14