收集整理一些PHP相关的正则表达式
自动化测试时期在开发设计某个的该项目的那时候,各举会用了海量的正则传达式,不论是PHP端还窗口JS端都当了海量的正则核实,非常正则相当较常用,但记不好环境去写和去查度娘哪个的都很是费劲,只能我们为我们当了某个PHP正则传达式的翻整,而后多用到需要随便前来这边检查就是。随意说下一句,JS鍴的正则传达式与PHP这样,但写法上稍有有什么区别,望结果者需不同我们的的该项目现场状况来改造正宗适用你的正则传达式。
一、验校数字5的表现式
大数字:^[0-9]*$
n位的号码:^\d{n}$
通常n位的数字式:^\d{n,}$
m-n位的数码:^\d{m,n}$
零和非零開頭的大数字:^(0|[1-9][0-9]*)$
非零6676的最小带某位小数的数字8:^([1-9][0-9]*)+(.[0-9]{1,2})?$
带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
有二位小数的正实数:^[0-9]+(.[0-9]{2})?$
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
非零的负整数:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
非负整数:^\d+$ 或 ^[1-9]\d*|0$
非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、校准标识符的抒发式
单字:^[\u4e00-\u9fa5]{0,}$
英语翻译和数字化:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
的长度为3-20的所有的空字符:^.{3,20}$
由二十二个因为符号构成的的字节串:^[A-Za-z]+$
由二十六个些许英文版英文字组合的标识符串:^[A-Z]+$
由二十六个大写字母组合日中文字母组合组合的标识符串:^[a-z]+$
由字母a和36用英语字母a形成的字段串:^[A-Za-z0-9]+$
由自然数、36国外英文案母也可以下划线主成的标识符串:^\w+$ 或 ^\w{3,20}$
中文字幕、英语翻译、金额有下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
英文版版、英文版、数字9但不包扩下划线等标点:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
能够 放入包含的^%&’,;=?$\”等标识符:[^%&',;=?$\x22]+
严令禁止搜索所含~的空格符:[^~\x22]+
三、特色各种需求描述式
Email电话号码:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
网站域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^//([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
手机上手机电话号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
联系电话快递单号(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$
国产联系电话号(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
生份证号(15位、18个数字):^\d{15}|\d{18}$
短双重生份证密码(阿拉伯数字、字母组合x结束):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
账号会不合规(字母符号组合前加,容许的5-16字节,容许的字母符号组合数字9下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
管理员密码(以字母符号组合a开头,大小在6~18之中,只是其中包含字母符号组合、号码和下划线):^[a-zA-Z]\w{5,17}$
强密匙(必需收录数值写字母组合式和加数的组合式,没能便用特异字节,宽度在8-10中间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
起止日期制式:^\d{4}-\d{1,2}-\d{1,2}
每年的13个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一些月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
钱的键盘输入格试:
有多种钱的认为结构类型我门能进行:”10000.00″ 和 “10,000.00″, 和不会有 “分” 的 “10000″ 和 “10,000″:^[1-9][0-9]*$
这表示法同其中两个其中两个不因0上述的数字9,只不过,这也一味着其中两个字节”0″不能够 ,因此我们大家用于下列的的形式:^(0|[1-9][0-9]*)$
一款0还一款而非0末尾的小数.人们还能够 准许末尾一斜款负号:^(0|-?[1-9][0-9]*)$
这提出一0亦或是一或许为负的结尾不给0的罗马数字.让微信用户以0结尾完成.把负号的也祛除,根据钱总可以是负的吧.上面小编要加的是表明或许的小数要素:^[0-9]+(.[0-9]+)?$
需要讲解的是,小数点后续少于可以有1个数,故此”10.”是没有根据的,可是 “10″ 和 “10.2″ 是根据的:^[0-9]+(.[0-9]{2})?$
那样.我法律规定小数点背后一定要有二位,但要是感觉太严苛了,不错那样:^[0-9]+(.[0-9]{1,2})?$
那样就支持大家只写位小数。下我门该满足数字6中的分号了,我门应该那样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
1到3个大概的数字,末尾追随符合各种个 句号+3个大概的数字,句号是供选择,而并非有必要:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
自己的名字:这就是说决定性但是了,别忘啦”+”能能用”*”使用。只要你想着空空格符串也能能认同说的话(奇妙,为一些 ?)末尾,别忘啦再用数学函数时取掉取掉哪些反斜杠,平常的有误都在这些里
xml资料:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
中文字幕空格符的正则理解式:[\u4e00-\u9fa5]
双字节字串:[^\x00-\xff] (属于中国字以内,就可以拿来换算字串串的厚度(这个双字节字串厚度计2,ASCII字串计1))
白页行的正则传达式:\n\s*\r (都可以平常删了白页行)
HTML标志的正则表达出式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (互联网讨论的发行版太糟,方面你这个也不仅仅能部门,就错综复杂的嵌套标志依旧会无能为力)
首尾留白标识符的正则表现式:^\s*|\s*$或(^\s*)|(\s*$) (行中用误删行首行尾的留白标识符(具有单引号、手表制作符、换页符之类的),是非常合理的表现式)
阿里游戏微信QQ号:[1-9][0-9]{4,} (阿里游戏微信QQ号从10000已经开始)
全国中华农行标识号:[1-9]\d{5}(?!\d) (全国中华农行标识号为6个数字)
IP电话号码:\d+\.\d+\.\d+\.\d+ (抽取IP电话号码时实用)
IP地此:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
这里的英文是指的一个差不多上是相对比效全的了,要不自觉忘记了这些并且少了这些相对比效通常用的,请这位小伙伴强调并加上,将这类库做大,更方便亲们学、施用。