正则表达式重温整理

三大基础符号:Bracket括号符号、caret插入符号和Dollars美元符号

  • 在正则表达式中存在三种括号符号:方括号([)、花括号({)及 圆括号(()

方括号"["内是需要匹配的字符,匹配括号中任意一个字符;
花括号"{"内是指定匹配字符的数量/长度;
圆括号“(“ 则是用来分组的。

  • 插入符号"^"表示正则的开始

  • 美元符号"$"表示正则的结束

正则中的特殊快捷命令及其组合

  • \d —> [0-9]

  • \w —> [a-z0-9A-Z_]

  • \s —> 任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等

  • 字符* —> 0次或多次发生

  • 字符+ —> 至少一次发生

  • ? —> 0次或1次发生

  • .+ —> 匹配任何字符(字母,数字,符号),除了n(换行)之外,1+次数。

  • (?i) —> 表示下一个序列不区分大小写。

  • | —> 连接两个表达式,表示或的关系

  • . —> 匹配除了换行符以外的任意字符

  • \b —> 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置

  • < —> 匹配单词开头的位置(待实证)

  • 字符 > —> 匹配单词结尾的地方(待实证)

  • \ —> 转义字符,普通字符转义为特殊字符,特殊字符转义为普通字符 - \n —> 匹配换行符 - \r —> 匹配一个回车符 - \f —> 匹配一个换页符


(0?[1-9]|[12]\d|3[01])——匹配1到31之间的任何数字(前面的0是可选的)

([\/\-])——匹配分隔符/或-

^[^@\s]+@[^@\s]+\.\w{2,6}$ 

## [^@\s]——匹配除@和空格\s之外的任何字符

## \.——匹配’.'字符

## \w{2,6}——匹配任何字符(字母,数字或下划线),2-6次

如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\。例如:deerchao\.net匹配deerchao.net,C:\\Windows匹配C:\Windows。

反义:有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义

  • \B —> 匹配非单词开头和结尾的地方

  • \W —> 匹配任意不是字母,数字,下划线的字符

  • \S —> 匹配任意不是空白符的字符

  • \D —> 匹配任意非数字的字符

  • [^x] —> 匹配除了x以外的任意字符

  • [^aeiou] —> 匹配除了aeiou这几个字母以外的任意字符

后向引用:使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。


\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, 或者kitty kitty。(\1  => \w+)

  • 常用分组语法
9.png

\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分),如查找I'm singing while you're dancing.时,它会匹配sing和danc。

比如(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。

你可能感兴趣的:(正则表达式重温整理)