需要正则表达式为url模式

时间:2015-04-29 16:09:09

标签: regex

我需要一个验证这个网址的正则表达式:

为:

www.*.com

www.abc*

*.*

好:

*abc.com
*.com
www.abc.com

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

^(www\.)?([a-zA-Z0-9\-]+?)(\.com)$

以下是正则表达式如何运作的细分:

  

^匹配字符串的开头

     

(www\.)?不检查任何内容,或字符串www.

     

[a-zA-Z0-9\-]匹配任何字母(大写和小写),以及数字和连字符。

     

([a-zA-Z0-9\-]+?)匹配上述一次或多次,并尝试找到最小的匹配。

     

(\.com)字面上匹配字符串.com

     

$匹配字符串的结尾。

regex101.com上的

Here's a live preview of the regex in action

这将允许以下网址:

  • www.google.com
  • www.apple.com
  • jojodmo.com
  • stackoverflow.com
  • 99-FAKE-websites.com

但不允许使用以下网址:

  • mail.google.com
  • data.stackexchange.com
  • microsoft.net
  • redirect.affiliate.scam.hop.clickbank.gov

如果您想允许除www以外的子域名(以及多个子域名),以及允许除.com以外的其他域名,您可以使用:

^(([\w\-]+\.)+?)?([a-zA-Z0-9\-]+?)(\.[a-zA-Z]{2,})$

这改变了:

  

(www\.)?已更改为(([\w\-]+\.)+?)?

     
      
  • [\w\-]+匹配任何字母(大写或小写),以及数字,连字符和下划线一次或多次。
  •   
  • \.字面匹配字符.
  •   
  • ([\w\-]+\.) +? 与上述内容匹配一次或多次,找到最小的匹配。
  •   
  • (([\w\-]+\.)+?) ? 制作以上可选
  •   
     

(\.com)已更改为(\.[a-zA-Z]{2,})

     
      
  • \.字面匹配字符.
  •   
  • [a-zA-Z]{2,}匹配任何字母,大写或小写,两次或多次
  •   

如果您还想在regex101.com上添加上述here's a preview of the new regex