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

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

测试工具

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

基本语法

界定符

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

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

原子

不可见的原子

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

元字符

原子的筛选方式

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

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


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


原子的集合

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

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

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

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

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

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

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

量词

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

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

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

  • * 匹配任意次,即{0,}

  • + 匹配多次其之前的原子, 即{1,}

  • ? 匹配0次或者1次其之前的原子,{0,1}



边界控制和模式单元

  • ^ 匹配字符串开始的位置

  • $ 匹配字符串结尾的位置

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



模式修正

贪婪匹配和朗多匹配

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

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

常见的修正模式

  • U/u 懒惰/贪婪匹配

  • i 忽略英文字母大小写

  • x 忽略空白

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

  • e 彩蛋


优de良
333 声望13 粉丝

好好写代码


引用和评论

0 条评论