正则表达式 贪婪匹配 转义

来源:互联网 发布:墙布 知乎 编辑:程序博客网 时间:2024/05/16 18:30

1 正则表达式
判断数据是否符合规范
可以在线测试的:http://tool.oschina.net/regex

preg_match(paterrn,str);判断是否匹配
preg_replace(patternreplace,str);replace,其中()内为一部分

.        此处占有一个字符*        匹配前面的>=0个字符+        匹配前面的>=1个字符?       匹配前面的0个或者1个字符[abc,,]  匹配1个字符(a|b|c) 匹配一个,对于|在最外边加(),不用每个都加,例如(abdk|abd'fj)这样{n}      匹配前面的n个字符{n,m}    匹配前面的至少n个字符,小于m个{n,}     匹配前面的>=n个字符\        转义\w       [0-9a-zA-Z]还有下划线,外文\d       [0-9]  \s       空白字符()       是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(a|b\c)? 匹配圆括号内0次或者1次  .*       匹配任何字符或者空白

邮箱
根据规则来:邮箱名可能包含-+.这样的字符,可以将\w放在[]中

\w+[\w+-.]*@[a-zA-Z0-9]+\.[a-zA-Z]{2,14}匹配 144-12.+@163.com

ip4
/^((\d{1,2}|1\d{2,3}|2[0-4]\d|25\d){1}.){3}(\d{1,2}|1\d{2,3}|2[0-4]\d|25\d)$/

验证身份证号(15位或18位数字)
/^\d{15}|\d{18}$/

非0负整数
/^-[1-9]\d*$/”;

验证用户密码:以字母开头,长度在6~18之间,只能包含字符、数字和下划线
/^[a-zA-Z][a-zA-Z0-9_]{5,17}$/

验证是否含有^%&’,;=?$\”等字符, 这一特殊意义的字符要加上\
/[\^%&’,;=?\$\”]+/ 这样^前面加上转义

正数、负数、和小数
/^-? \d+( .\d+)?$/

浮点数
/^-?\d+.\d+$/

开头或结尾有空白\s

/(^\s.*|.*\s$)/

用户名:中文
[A-Za-z0-9_-\u4e00-\u9fa5]+

URL
^((https|http|ftp|rtsp|mms)?:\/\/)([a-zA-Z0-9-.]/)[a-zA-Z]*

贪婪匹配和非贪婪匹配
对于量词,例如{n,m} {n,} + ? *
贪婪匹配:在匹配成功的情况下,尽可能多的匹配;
非贪婪匹配:忽略量词,在量词后面加上? 。在匹配成功的情况下,尽可能少的匹配;

转义:
addslashes 往数据库中传送数据,对于预定义的符号(’” null \)加上\转义
htmlspecialchars 将字符串转为html实体,对于预定义的符号(下面五种)转换为html实体。
& (和号) 成为&
” (双引号) 成为"
’ (单引号) 成为'
< (小于) 成为<

(大于) 成为>可以防止XSS攻击。

0 0
原创粉丝点击