none
.net正则表达式 函数计算超时 RRS feed

  • 问题

  • 用正则表达式来查看邮箱的地址是否合法。

    碰到下面这个邮箱的时候,出现了"函数计算超时"的错误。

    Regex.IsMatch("xxxxxxxx.aaaaaaaaaaaaaa@in.non.schneider-electric.",@"^\w+([\.+'-]?\w+)*@\w+([\.-]?\w+)*?(\.\w+)+$")

    求原因和解决方法.....


    2013年10月17日 2:11

答案

  • 其实像常用的正则表达式,比如电话号码,邮箱地址,URL地址,微软都提供了。在RegularExpressionValidator控件的ValidationExpression属性中有。默认的邮箱正则是:

    \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    正常用这些默认的就可以了。当然这些默认的并不是唯一的写法,可以有很多种写法,每一种写法的效率也可能都不一样。你需要做的就是避免误匹配,漏匹配,语法错误等。

    为了避免错误的正则表达式计算时间过长,影响程序运行,可以对正则表达式设置一个超时时间:

    Regex.Matches 方法 (String, String, RegexOptions, TimeSpan)

    更多关于正则表达式的内容,请参考这篇文章:

    如何写出高效的正则表达式


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2013年10月18日 1:31
    版主

全部回复

  • 你好:

    这个正则表达式有问题,用下面这个不会出现这种错误:

    ^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

    请尝试一下。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年10月17日 10:17
    版主
  • 感谢你的回复。用这个表达式可以走得通。谢谢。

    这个表达式和之前的那个有点不同,尤其是最后的[a-zA-Z]{2,4},不过我想这个应该更合理一些。

    另外,我想知道之前那个报错的原因是正则里面的哪一段导致呢?或者写正则的时候要尽量避免哪些容易导致计算报错的语句呢?

    2013年10月18日 0:48
  • 其实像常用的正则表达式,比如电话号码,邮箱地址,URL地址,微软都提供了。在RegularExpressionValidator控件的ValidationExpression属性中有。默认的邮箱正则是:

    \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    正常用这些默认的就可以了。当然这些默认的并不是唯一的写法,可以有很多种写法,每一种写法的效率也可能都不一样。你需要做的就是避免误匹配,漏匹配,语法错误等。

    为了避免错误的正则表达式计算时间过长,影响程序运行,可以对正则表达式设置一个超时时间:

    Regex.Matches 方法 (String, String, RegexOptions, TimeSpan)

    更多关于正则表达式的内容,请参考这篇文章:

    如何写出高效的正则表达式


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2013年10月18日 1:31
    版主
  • 感谢您的回复!
    2013年10月21日 1:51