正则表达式检查网址和信件

时间:2017-01-12 10:08:33

标签: regex

我尝试构建两个正则表达式.net谁:

1)检查url是否以“http://或https://”开头,并包含最少4个字母,并且包含最少4个字幕的toupper。

例如:http://www.abcdeABCDE.com匹配

http://www.abcde.com不匹配

http://www.Abcde.com不匹配

我尝试这个正则表达式,但也没有工作:

^(?:http(s)?:\/\/)?[\w.]+(?=.*[A-Z]).{4,}(?=.*[a-z]).{4,}$

2)检查url是否以“http://或https://”开头并且包含最少30个字母(包含tolower,toupper和digit)而不分离

ex:http://www.qsdfmjk12mqsKL54JMDSFFMLKJSFD126.com匹配 http://www.qsdfmjk12mqsKL54.com不匹配

感谢您的帮助

3 个答案:

答案 0 :(得分:3)

这个正则表达式应该可以胜任:

^(?:https?://)(?=(?:.*[A-Z]){4,})(?=(?:.*[a-z]){4,})

<强>解释

^               : start of string
  (?:           : start non capture group
    https?://   : that contains http:// ot https://
  )             : end group
  (?=           : lookahead
    (?:         : non capture group
      .*[A-Z]   : one or more any char followed by uppercase letter
    ){4,}       : group must be present 4 or more times
  )             : end of lookahead
  (?=           : lookahead
    (?:         : non capture group
      .*[a-z]   : one or more any char followed by uppercase letter
    ){4,}       : group must be present 4 or more times
  )             : end of lookahead

对于第二个正则表达式,请使用:

^(?:https?://)[a-zA-Z0-9]{30,}

<强>解释

^               : start of string
  (?:           : start non capture group
    https?://   : that contains http:// ot https://
  )             : end group
  [a-zA-Z0-9]{30,}  : at least 30 characters lower or upper case or digit

对于两个正则表达式,如果http是可选的,请使用^(?:https?://)?

答案 1 :(得分:0)

第二个例子可能是这样的 ^(?:https?:\/\/)[a-z0-9.]{30,}\.[a-z]{2,}$

请参阅https://regex101.com/r/dMuv7q/1

答案 2 :(得分:0)

^https?://(?=.*[A-Z]{4,})(?=.*[a-z]{4,}).*  
^https?://[a-zA-Z0-9\\.]{30,}