Simple Note

正则表达式总结

2015.10.08

1. 常用元字符

  • \b : 元字符, 代表单词的开头或结尾, 即分界处

    \bhexo\b表示精确地查找hexo这个单词, 不包括hexoa, hexob等等. 如果直接用hexo匹配, 则表示精确匹配这样的字符串: 包含连续的h , e , x , o字符, 比如hexoa , bhexoc等等(正则表达式中的单词表示连续的\w)

  • . : 匹配除了换行符\n以外的字符

  • * : 代表数量, 表示*前面的字符可以连续重复任意次(可以是0次)

    .*连用表示任意数量不含换行的字符

  • + : 前面的字符可以连续重复任意次(至少1次)

  • \d : 匹配数字0 ~ 9

  • \s : 匹配空白符: 空格, 全角空格, 制表符, 换行符等

  • \w : 匹配字母, 数字, 下划线, 汉字

  • ^ : 匹配字符串开头(用正则表达式处理多行时匹配行的开始)

  • $ : 匹配字符串结尾(处理多行时匹配行尾)

2. 怎么输入元字符本身

  • 要输入元字符本身就在字符前面加\
  • 输入\符号就输入\\

3. 表示重复含义的限定词

  • * : 重复0次或更多
  • + : 重复1次或更多
  • ? : 重复0次或者1次
  • {n} : 重复n次
  • {n, } : 重复n次或更多
  • {n, m} : 重复n到m次

4. 定义自己的字符集合

  • 用方括号括起要匹配的字符即可, 如[,.!?]就会匹配这四个标点符号中的一个
  • 也可以指定字符范围, 如[0-9]表示0到9中的任一位数字, [A-Z]表示任一位大写字母
  • 字符范围可以合在一起,如[a-z0-9A-Z]表示任意字母或者数字

5. 分支条件

  • |把几个规则合在一起,表示任何一个规则满足即可(从左到右进行匹配)

6. 如何重复多个字符

  • 用小括号把这多个字符括起来即可, 括号中也可以是正则表达式规则, 此时将重复与规则匹配的字符
  • 每个小括号都会有一个序号(从1开始), 用\加序号相当于重新输了一遍前面序号对应的小括号里的规则所匹配的字符
  • 可以自己定义序号名: (? < name > 这里是规则), 后面引用时写: `\k< name >

7. 常用反义代码

  • \W : 除了字母, 数字, 下划线, 汉字的字符
  • \S : 除了空白符的字符
  • \D : 除了数字的字符
  • \B : 除了单词开头和结束的位置
  • [^s] : 除了s以外的字符
  • [^abcde] : 除了abcde几个以外的字符

8. 懒惰限定符

  • *? : 重复任意次, 尽可能少重复
  • +? : 至少重读一次, 尽可能少重复
  • ?? : 重复0次或者1次, 尽可能少重复
  • {n, m} : 重复n到m次, 尽可能少重复
  • {n,} : 至少重复n次, 尽可能少重复
Comments
Write a Comment