多语言展示
当前在线:1185今日阅读:61今日分享:18

常用正则表达式之字符组

掌握正则表达式应该是IT工程师的一项标准技能,遗憾的是,过去,不少人多多少少忽视了这一点,所以在工作中总要应对正则表达式带来的麻烦.所以只有掌握并熟练并运用正则表达式才有可能成为一个高效的工程师,而且这种不起的东西,一不用就会忘掉了.所以分享自己的学习经历与大家共勉.
工具/原料

正则表达式测试地址http://regex.larsolavtorvik.com

方法/步骤
1

首先介绍一下这个网站测试正则表达的使用方法,主要针对的是PHP和Javascript.         1.在Pattern 填写正则表达式如:[0-9]         2.在Subject填写你要匹配的字符串如:3         3.在Matches和Result处可以看到匹配的结果.         4在Code处可以看到生成对应的正则表达式写法(以PHP为例).

2

普通字符组的组成成员包括数字(0-9),字母(a-zA-Z),标点符号(?,:')等.它表示在同一位置可能出现的各种字符,其写法是在一对方括号[和]之间列出所有可能出现的字符,但是重点是只是出一个字符!还有-表示是范围如[0-9]表示的是0,1,2,3....9中的任意一个数字.如下的例子:^[a-z]$只是用来匹配一个字符的.其中^和$的作用后面会讲到,这里只是让大家看到这个只能匹配一个字符!

3

元字符和转义,2步骤中的横线-并不能匹配横线字符,而是用来表示范围,这类字符叫做元字符.元字符还有^,$,?,+,*,.,[,],(,),{,},|这个些字符有着特殊意义!这里只有-比较特殊它可以不要转义只要写在字符组的开头例如[-a-z]这就表示的是-和a,b,c,d....z共27个字符,剩下都要加反斜线转义.例如下面的例子如果不去转义]的话,正则表达式的意义截然不同.因为]他会和找离它最近的[,所以相当于是[012]和345]这就说明他能匹配0345],1345]和声345]而如果写成[012\]345]它能匹配0,1,2,],3,4,5

4

排除字符组,在方括号中[....]中列出希望匹配的所有字符,这种字符组叫做'普通字符组',如果要匹配除了[a-z]之外的字符怎么办那?例如现在我想匹配A6,X7之类的字符串,这就得用到排除字符,在这里要强调的是排除字符组必须匹配一个字符,而不是不匹配,这也是我当时学习犯过的错误例如:做这个试验的时候记得把i去掉啊!最后一点就是^只有紧跟在[之后才表示是除了的意思,要是在别的地方出现就是普通字符了.

5

字符组简记法常见的记法有\d,\w,\s分别对应[0-9],[0-9a-zA-Z_],[ \t\r\n\f\v]这里面的第一个是空格,可以这样记\d是数字(digit),\w是单词字符(word),\s是空白字符(space)

6

最后关于.和[\w]的误区说明,有人常常把.可以匹配任意字符,其实这是错误的.是除了换行符的任意字符,如果想匹配任意字符建议使用[\d\D]或[\s\S]或[\w\W]其中\d和\D是对立的.也就是你匹配的我不匹配,你不匹配的我匹配.最后就是[\w]其实这个里面隐藏了一个下划线字符_所以在应用的时候要留意一下例如:

注意事项
1

做相应的测试的时候请查看相应的图片,例如有可能是你开启不区分大小写之类的.

2

如果对你有帮助,我不慎感激请关注我我会继续更新!

推荐信息