常见问题的正则表达式解决方案

来源:互联网 发布:无线多重网络什么意思 编辑:程序博客网 时间:2024/05/15 02:53
1.匹配北美电话号码
  要匹配的文本:
   J.Doe: 248-555-1234
   B.smith: (313) 555.1234
   A.Lee:(810)555.1234
   M.Jones:248.555.1234
  正则表达式:[\(.]?[2-9]\d\d[\).]?[ -]?[2-9]\d\d[-.]\d{4}
• 中国固定电话号码
要匹配的文本:
029 8845 7890
029 88457890
(029) 8845 7890
(029) 88457890
029-8845 7890
029-88457890
029-8845-7890

正则表达式:\(?0[1-9]\d{1,3}\)?[ -]?[2-9]\d{2,3}[ -]?\d{4}
2.美国邮政编码
    要匹配的文本:
    999 1st Avenue ,Bigtown,NY,11122
    123 High Street,Any City,MI,48034.1234
    正则表达式:\d{5}(.\d{4})?
• 中国的邮政编码:/d(9|[0-7])\d{4}
3.IP地址
    要匹配的文本:
    localhost is 127.0.0.1
    正则表达式:
    (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])
4.URL地址
    要匹配的文本:
    http://www.forta.com/blog
    https://www.forta.com:80/blog/index.cfm
    http://www.forta.com
    http://ben:password@www.forta.com/
    http://localhost/index.php?ab=1&c=2
    http://localhost:8500/
正则表达式:
https?://[-\w.]+(:\d+)?(/(\w/_.|*)?)?
• 完整的URL地址
要匹配的文本:
   http://www.forta.com/blog
   https://www.forta.com:80/blog/index.cfm
   http://www.forta.com
   http://ben:password@www.forta.com/
   http://localhost/index.php?ab=1&c=2
   http://localhost:8500/
正则表达式:
https?://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.|]*(\?\s)?)?)?
注:(\w*:\w*@)?  匹配嵌在URL字符串里的用户名和口令
   [-\w.]+  匹配主机名
   (:\d+)?  匹配一个可选的端口号
5.电子邮件地址
     要匹配的文本:
     my name is ben forta,and my email address is ben@forta.com
     正则表达式: (\w+\.)*\w+@(\w+\.)+[A-Za-z]+


     (\w+\.)*\w+   匹配用户名部分,即@之前的所有文本
     (\w+\.)+   匹配以.结束的字符的一次或多次的重复出现
[A-Za-z]+  匹配顶级域名(com 、edu 、us 或uk等)
6.HTML注释
     要匹配的文本:
     <!--start of page-->
     <HTML> 
       <!--start of head-->
        <HEAD>
                   <TITLE>Title</TITLE><!--page title-->
        </HEAD>
<!--start of body-->
<BODY>
</BODY>
</HTML>
正则表达式:<!-{2, }.*?-{2, }>
<!-{2, }  匹配HTML注释的开头部分
.*?       匹配HTML注释的开头部分
{2, }>    匹配HTML注释的开头部分
7.javascrpt里的注释
     正则表达式: //.*
     
   










0 0
原创粉丝点击