首页 存档 技术 查看内容

【PHP专题10】人力比反思 正则表达式

2018-3-30 13:00 |来自: 互联网 370 0

摘要: 又回到北京了,还是在一线城市节奏很快。 最近有几个进入一线互联网公司的朋友对我说,我们这边很忙,团队5个QA,接近50个RD,快要吃不消了,有时候连喝水上厕所时间都没有。 我记得以前在腾讯的时候我们团队3个人 ...

又回到北京了,还是在一线城市节奏很快。


最近有几个进入一线互联网公司的朋友对我说,我们这边很忙,团队5个QA,接近50个RD,快要吃不消了,有时候连喝水上厕所时间都没有。


我记得以前在腾讯的时候我们团队3个人,开发差不多17-20个之间。那公司就只这样的配比,你作为测试的该怎么办?


很多时候不是在技术上提升的问题了,需要有团队合作精神。开发和测试就是一个team。测试和写代码的边界得逐渐模糊起来。如果开发一天很早就提交了代码,测试这边排不开。可以做做单元测试,弄点自动化case跑跑,QA可以帮他们把把case关,或者承担一些集成测试。


如果反之QA不是那么忙,团队开发人比较少。那测试应该主动去辅助开发,弄持续集成平台,做一些团队角色共工使用的小工具。这样大家都能提高效率。还能更好的peer之间相互合作。整个团队趋于稳定。


正则表达式定义

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。


正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。


举例1:需求是只让用户输入阿拉伯字母(大小写均可),在注册姓名时候非常实用,避免用户输入一些外星符号

代码讲解:重点是14行,13行定义了一个函数(这个不用管,后面一节专门讲解类和函数)

14行的preg_match方法就是正则方法,里面三个参数,第一个是正则表达式、第二个是用户输入的字符,最后是返回值。

重点是"/^[a-zA-Z]*$/"

双引号不说了,没啥,最外层的2个斜杠/ /,是边界定义符号,告诉php,里面是正则匹配符号,^这个符号是开始,$是结束。所以只有中括号里面是匹配的符号一个中括号代表第一个用户输入的值去匹配,户名一个*,表示所有不管用户输入多少字符都用这个表达式。如果没有星号,就只匹配第一个字符。


测试下:x输入addd

如果输入一个特殊字符

举例2:身份证号码正则匹配举例

需求是身份证号15、18、17位 一位X 三种情况

请看下面代码

讲解:rule里面[]中括号是范围,表示0-9都可以外面紧跟大括号{}意思是15位,|是逻辑或。

知识点:

[]是定义匹配的字符范围。比如 [a-zA-Z0-9]

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,


输入一个正确的身份证号看结果

输入一个错误的身份证


举例3:判断一个正确的电话号码

手机号码基本格式,前面三位为

移动:134-139 147 150-152 157-159 182 187 188

联通:130-132 155-156 185 186

电信:133 153 180 189

这里和上面提到知识点类似

rule:小括号是分组,里面有几位,就是定义了几位所以

13[0-9]是三位前两位是13第三位任意(定义完毕联通、移动)

15[0-37-9] 假设电信没155 156 只有150 151 157 159(定义完毕电信金阳光想当然定义的,真实与否不重要)所以15后面一位包括0、1、2、3、7、8、9,不包括5、6

同理部分移动在最后定义

[0-9]{8}意思是除了前三位,后面三位任意0-9。

我来测试下(155字段不是手机号):


输入一个正确的手机号:

ok了。


举例4:匹配email



举例5:匹配ip地址

以上2个就不输出了。感兴趣的同学可以自己在php程序里面运行下

欢迎大家来稿分享自己测试和学习心得,来稿联系金阳光。qq邮箱:[email protected]





长按二维码-识别图中二维码




加入免费公益分享的大家庭吧!


让我们一起学习,快速成长。



长按二维码-识别图中二维码



声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部