正则

来源:互联网 发布:mac定制水漾粉底液色号 编辑:程序博客网 时间:2024/06/07 17:11

/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ 谁能帮我具体解释下这个正则表达式的含义呢
/^(13[0-9]|15[0-9]|18[0-9]|14[0-9])\d{8}$/ 还有这个也帮忙解释下,??

^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+
^ 表示开头.
([a-zA-Z0-9_-])+ a-z A-Z 0-9 的字符和下划线_,横线- (实际上这里不用加圆括号)
+ 表示这样的字符有 一个或n个(也就是大小写字母数字下划线横线有1个或n个
@ 就是@符号..表示接下来是个@符号
([a-zA-Z0-9_-])+ 然后又是大小写字母数字下划线横线有1个或n个
.表示小数点 .
.[a-zA-Z0-9_-] 匹配 小数点后边跟 大小写字母数字下划线横线,这里有个小错误就是没有指定重复次数所以只能匹配一个字符,比如 123@qq.com 只能匹配到 123@qq.c
(.[a-zA-Z0-9_-])+ 这里表示可以有1次或n次重复的情况 比如 123@qq.a.b.c
修改正确:
^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+
\w相当于[a-zA-Z0-9] 所以可以简写一下 ^[\w_-]+@[\w_-]+(.[\w_-]+)+
^(13[0-9]|15[0-9]|18[0-9]|14[0-9])\d{8}13n15n18n14n,n0 9\d88...1(3|5|8|4)\d9
+++++++++++++++++++++++++++++++
正则表达式
又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
看这个百科太正规了,个人理解就是在一堆字符串中筛选出符合自己定义的规则的字符串。用来验证一些有特殊规律的字符串,如身份证,电话号码等。
语法介绍:
正则表达式包括四个部分,定界符、元字符、量词、模式修正符。
1.定界符:即//; reg=//;2.reg = ‘/a/’;筛选出a。也可以用以下转义字符,来表示一定的范围。
\w 小写w表示筛选的内容就是字母、数字、下划线范围中的任意一个
\W 与小写w相反。
\d表示数字(0-9)范围中的任意一个
\D表示数字范围之外(除了数字之外的)任意一个
\s ,表示一个空格
\S,除了空格之外的任意一个字符
**\b,boundary,国界线,在正则表达式中表示单词之间的边界
\B,表示除了字符边界线之外的任意一个字符**
[]中括号,表示范围中的一个如[a-z]
. ,英文的点号,表示除了换行符(\n)之外的任意一个字符
| 表示或者
\x{4e00} - \x{9fa5}表示中文的范围ACSII码 注意需要在正则表达式之后加上/u模式符,使其转换为utf8国际编码。
3.量词
*:表示0个或多个
+:表示至少1个
?:表示0个或1个
注意
?比较特殊,如果?放在元字符后面,表示量词,也就是匹配的数量,如果?放在量词后面,也是将贪婪模式转换成懒惰模式的意思
^ ,表示结束的位置
4.模式修正符
书写在正则表达式的最后
即$reg = ‘//i’;
1.i –即ignore 即忽视大小写
2.U –将默认的贪婪模式转换为懒惰模式,即读取一个就停止
贪婪模式是尽可能多的读。
3.u,采用utf-8编码对字符进行转码
4.s,表示万能点模式,默认情况下,.英文点号匹配除了换行符\n之外的任意字符,采用万能点模式之后,英文点号匹配任意的字符包括\n换行
5./m,multi 多行模式(了解即可)多行模式,就是将换行的地方看做是一个新的字符串
正则表达式的一些要点:
捕获与分组通过小括号进行捕获与分组,在匹配后的数组中将分组返回,下标为0的返回原匹配字符,第一个下标返回第一个()中的内容,以此类推。
(?exp)匹配exp,并捕获文本到名称为name的组里
(?:exp) 匹配exp,不捕获匹配的文本
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?

原创粉丝点击