正则表达式匹配

匹配字符串字面值

匹配数字字符串

  • \d[0-9]

匹配非数字字符串

  • \D,^\d,[^0-9]

匹配单词字符

  • \w,与\D的区别是\D会匹配空格,标点符号等字符,\w只匹配字母,数字和下划线
  • 英语环境下即:[_a-zA-Z0-9]

匹配非单词字符

  • \W,[^_a-zA-Z0-9]

匹配空白符

  • \s,[ ]
  • 制表符: \t
  • 换行符: \n
  • 回车符: \r

匹配任意字符

  • 粗略匹配:.{7},任意匹配7个字符
  • 确定边界:\bA.{5}T\b,匹配A开头,T结尾,中间任意5个字符的字符串
  • 匹配某一长度的单词:\b\w{7}\b
  • 匹配0个或多个字符:.*.相当于[^\n]

边界

行的起始和结束

  • 匹配行或字符串的起始要使用脱字符:^
  • 匹配行或字符的结尾要使用美元符号:$

单词的边界和非边界

*\b,\B

选择,分组和向后引用

选择操作

  • 基本:(the|The|THE)

子模式

  • 指分组中的一个或多个分组
  • 子模式可以是不依赖的(the|The|THE)
  • 也可以是依赖的(t|T)h(e|eir)
  • 括号对子模式不是必须的

捕获分组和向后引用

  • 当一个模式的全部或部分内容由一对括号分组时,它对内容进行捕获并临时存储于内存中
  • 可以通过后向引用重用捕获的内容:\1,$1,引用的是第一个捕获的分组,以此类推

非捕获分组

  • 不会将其内容存储在内存中

量词

基本匹配

  • ?,0个或一个
  • +,一个或多个
  • *,0个或多个

匹配特定次数

  • {n},精确匹配n次
  • {n,},匹配n次或多次
  • {m,n},匹配m至n次

懒惰量词

  • 匹配尽可能少的次数,也可能不匹配任何内容,0次
  • 简单就是在量词最后加?

占有量词

  • 尽量匹配多的内容,但与贪心匹配不同,它不进行回溯,也不会放弃找到的内容
  • 简单就是在量词最后加
posted @ 2015-05-14 14:56  JinksPeng  阅读(150)  评论(0编辑  收藏  举报