正则表达式看过来

1、正则表达式:字符串中字符出现的规则定义,可以看做一种语法经过压缩的程序语言。

  正则表达式使用界定符保卫正则字符串作为正则表达式的代码,常见界定符“/”,"#","~"或者括号() []  {}

2、语法组成

  正则表达式中的语法分为数据结构逻辑控制

  数据结构:1、常用字符串:普通字符组成;2、变量字符串:特殊字符组成

  逻辑控制:1、匹配内容获取与引用;2、匹配位置内容判断;3、匹配内容次数控制;4、匹配逻辑或选择

3、正则表达式的数据结构

  3-1 匹配常量字符串 “/hello/” 忽略大小写“/hello/i”

  3-2 变量字符:

  简单变量字符使用,带有转移的单个特殊字符表示

  d 匹配一个数字字符   等价于[0-9]

  D匹配一个非数字字符  等价于[^0-9]

  s匹配一个任意空白字符  等价于[ vf]

  S匹配一个任意非空白字符  等价于[^ vf]

  w匹配一个字母/数字/下划线/汉字字符  等价于[A-Za-z0-9]

  W匹配一个非字母/数字/下划线/汉字字符  等价于[^A-Za-z0-9]

  . 匹配一个除换行 外的任意字符   等价于[^ ]

   

   匹配一个换行符 等价于x0a和cl

   匹配一个回车符 等价于x0ad和cm

   匹配一个水平制表符 等价于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+)+)$/;

佳物不独来,万物同相携。
原文地址:https://www.cnblogs.com/rongrongtu/p/5698189.html