正则表达式看过来
1、正则表达式:字符串中字符出现的规则定义,可以看做一种语法经过压缩的程序语言。
正则表达式使用界定符保卫正则字符串作为正则表达式的代码,常见界定符“/”,"#","~"或者括号() [] {}
2、语法组成
正则表达式中的语法分为数据结构与逻辑控制;
数据结构:1、常用字符串:普通字符组成;2、变量字符串:特殊字符组成
逻辑控制:1、匹配内容获取与引用;2、匹配位置内容判断;3、匹配内容次数控制;4、匹配逻辑或选择
3、正则表达式的数据结构
3-1 匹配常量字符串 “/hello/” 忽略大小写“/hello/i”
3-2 变量字符:
简单变量字符使用,带有转移的单个特殊字符表示
\d 匹配一个数字字符 等价于[0-9]
\D匹配一个非数字字符 等价于[^0-9]
\s匹配一个任意空白字符 等价于[\n\r\t\v\f]
\S匹配一个任意非空白字符 等价于[^\n\r\t\v\f]
\w匹配一个字母/数字/下划线/汉字字符 等价于[A-Za-z0-9]
\W匹配一个非字母/数字/下划线/汉字字符 等价于[^A-Za-z0-9]
. 匹配一个除换行\n外的任意字符 等价于[^\n]
\n匹配一个换行符 等价于\x0a和\cl
\r 匹配一个回车符 等价于\x0ad和\cm
\t匹配一个水平制表符 等价于\x09和\ci
\v 匹配一个垂直制表符 等价于\x0b和ck
\f 匹配一个换页符 等价于\xoc和\cl
匹配数字字符“/\d/”
匹配空白字符 /\s/
匹配单词字符 /\w/
3-3 逻辑控制
4、预判断:在正则表达式 前先预读整个字符串进行初步匹配(?=表达式)先浏览字符串是否满足表达式的要求
先检查字符是否有“不满足”表达式要求的;例(?=[47]$)判断字符串中是否含有4或7
5、例子
邮箱验证:一般的email,形如zhangshan@163.com,abc@sina.com.cn这样一些常用的形式就行了,但是在我们公司的一些客户中邮箱却有一些
zhangshna.Mr@163.com,abc_Wang.dd@sian.com,abc_Wang.dd.cc@sian.com这 种类似的形式,在@符号之前还有点.原来是拿来就用,可是现在就不行,得自己研究正则的用法了
原来的正则表达式 /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
根据实际情况修改 /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;
或者更加简洁的 /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;