[10/10周主题] – 正则表达式
和程序打交道的朋友,工作中很难避免不使用正则表达式,因为它可以很大程度上简化复杂和繁琐的字符串处理工作,关于正则表达式,wikimedia上是这样解释的:一个正则表达式通常被称为一个模式 (pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。详细介绍参见这里:正则表达式
本周主题:正则表达式
首先介绍一个不错的正则表达式入门教程:《正则表达式30分钟入门教程》,即使你之前没接触过,也可以很容易入门应用。当然实际看下来肯定不止30分钟了,这篇文章作者几经修正浓缩了一些精华,让想接触的朋友更好的入门和使用,特别推荐。
另外推荐使用的是正则表达式验证工具:REGex TESTER http://www.regextester.com/ , 随时可以将写好的正则表达式进行在线实时验证。
正则表达式说起来有不少使用方法,但是平常使用的正则表达式还是稍微比较简单,大部分都属于验证框架 或者 服务器上面的一些rewrite规则使用。
下面就整理和收集了一些常用的正则表达式,以备不时之需。
Validate 框架相关
1、匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
2、匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
3、匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
4、匹配国内电话号码(这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等): \(?0\d{2}[) -]?\d{8}
5、匹配IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
6、匹配身份证:\d{15}|\d{18}
7、用户名可使用中文、英文字母(区分大小写)、数字或部分特殊字符(. _ – @),长度为4~20个字符:/^[\u4e00-\u9fa5A-Za-z0-9\_\-\.@]$/ig
服务器Rewrite相关
1、
RewriteEngine on
RewriteCond %{HTTP_HOST} ^quanlei.com [NC]
RewriteRule ^(.*) http://www.quanlei.com/ [L]
2、
同时达到下面两个要求:
1.用http://www.zzz.com/xxx.php 来访问 http://www.zzz.com/xxx/
2.用http://yyy.zzz.com 来访问 http://www.zzz.com/user.php?username=yyy 的功能
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.zzz.com
RewriteCond %{REQUEST_URI} !^user.php$
RewriteCond %{REQUEST_URI} .php$
RewriteRule (.*).php$ http://www.zzz.com/$1/ [R]
RewriteCond %{HTTP_HOST} !^www.zzz.com
RewriteRule ^(.+) %{HTTP_HOST} [C]
RewriteRule ^([^.]+).zzz.com http://www.zzz.com/user.php?username=$1
例子二:
/type.php?typeid=* –> /type*.html
/type.php?typeid=*&page=* –> /type*page*.html
RewriteRule ^/type([0-9]+).html$ /type.php?typeid=$1 [PT]
RewriteRule ^/type([0-9]+)page([0-9]+).html$ /type.php?typeid=$1&page=$2 [PT]
相关资料:
1、http://faq.comsenz.com/?action-viewnews-itemid-12


Pingback: Tweets that mention [10/10周主题] – 正则表达式 | 权记 -- Topsy.com