正则表达式看过来


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+)+)$/;