none
正規表示法 RRS feed

  • 問題

  • 大大您們好,我想請問一下正規表示法,透過網路我搜尋到可以讓user輸入正確mail的方式,可是若要讓user可輸入多的mail address,我的方式還是無法解決,如下
    Regex rx = new Regex(@"(;([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([A-Za-z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\])){2,}");
    粗體部分即是我有問題的地方,此種寫法mail至少要輸入兩個且address寫對才會判斷正確
    Regex rx = new Regex(@"(;([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([A-Za-z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\]))*");
    此種寫法mail只寫一次且寫錯也會判斷成正確
    請問大大,在最後部分我該如何修改,才能達到user不論寫幾次我都正確無誤判斷他的address,謝謝

    2010年12月30日 上午 09:23

解答

  • ^(;?(([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([A-Za-z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\]));?)+$

    我只改了前後的符號,你看看這樣行不行

    • 已標示為解答 冰糖旋風 2010年12月31日 上午 12:24
    2010年12月30日 上午 09:45

所有回覆

  • 改用 +
    2010年12月30日 上午 09:33
  • 大大您好,可我改成Regex rx = new Regex(@"(;([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([A-Za-z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\]))+");
    後,變成至少要輸入第二個才會判斷正確,大大是否還有其他想法,謝謝
    2010年12月30日 上午 09:38
  • ^(;?(([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([A-Za-z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\]));?)+$

    我只改了前後的符號,你看看這樣行不行

    • 已標示為解答 冰糖旋風 2010年12月31日 上午 12:24
    2010年12月30日 上午 09:45
  • 大大可以了,謝謝您,請大大再幫我一下,請問,為何前後都要加問號,因為我發現若前面沒加,那至少要輸入兩個位址才會正確,謝謝大大

    2010年12月30日 上午 10:03