正则表达式小结

正则表达式一种规则, 搜索和匹配

用途
拿php来举例
preg_match -- 表单验证
preg_replace -- 非法词语过滤
拿javascript来举例
可以用现成的框架is.js
验证邮箱
验证手机号码
验证用户名规则

测试工具

测试工具不写含界定符
http://regexpal.isbadguy.com/

基本语法

界定符

  1. 表示一个正则表达式的开始和结束
    例如, /[0-9]/

界定符就是/, 不同的语言可能不同
也可以用# [0-9]#

原子

不可见的原子

t n ...需要转义的字符

元字符

原子的筛选方式

  1. | 匹配两个或者多个分支选择

  2. [] 匹配方括号中的任意一个原子

  3. [^] 匹配除方括号中原子以外的任意字符

原子的集合

  1. . 匹配除了换行符之外的任意字符,即[ ^n]

  2. d 匹配任意一个进制数字,即[0-9]

  3. D 匹配任意一个非十进制数字,即[ ^0-9]

  4. s 匹配一个不可见的原子, 即[fntrtv]

  5. S 匹配一个可见的原子, 即[ ^fntrtv]

  6. w 匹配任意一个数字,字母或者下划线, 即[0-9a-zA-Z]

  7. W 匹配任意一个非数字,字母或者下划线, 即[ ^0-9a-zA-Z]

量词

  1. {n} 表示其前面的原子出现n次

  2. {n,}表示其前面的原子至少出现n次

  3. {n,m}表示其前面的原子至少出现n次,最多出现m次

    • 匹配任意次,即{0,}
    • 匹配多次其之前的原子, 即{1,}
  4. ? 匹配0次或者1次其之前的原子,{0,1}

边界控制和模式单元

  1. ^ 匹配字符串开始的位置

  2. $ 匹配字符串结尾的位置

  3. () 匹配其中的整体的一个原子

模式修正

贪婪匹配和朗多匹配

  1. 贪婪匹配-匹配结果存在歧义取其长,默认

  2. 懒惰匹配-匹配结果存在歧义取其短

常见的修正模式

  1. U/u 懒惰/贪婪匹配

  2. i 忽略英文字母大小写

  3. x 忽略空白

  4. s 让元字符'.'匹配包括换行符在内的所有字符

  5. e 彩蛋

关键字:regexp, 匹配, 原子, 字符

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部