正则表达式总结
正则表达式 //元字符 . 换行符以外任意字符 \w 字母/数字/下划线/汉字 \s 任意空白符 \d 数字 \b 单词开始和结尾 ^ 字符串开始 $ 字符串结束 //字符转义 使用\来取消字符的特殊意义 //重复 * 重复任意次 + 重复一次或多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次以上 {n,m} 重复n到m次 //字符类 [aeiou] 匹配aeiou任何一个英文字母 [0-9] 匹配0到9任何一个数字 //分支条件 | 匹配成功,就不再继续匹配。\d{4}|\d{5} //分组 (01\d){5} 分组内容重复5次 //反义 \D 大写后匹配非数字 [^aeiou] 匹配除aeiou以外任意字符 //后向引用 \1 分组1匹配的文本,\b(\w+)\b\s+\1\b匹配像go go重复单词 (exp) 匹配exp并捕获文本到命名组里 (?<name>exp) 匹配exp并捕获文本到名称为name的组里 (?:exp) 匹配exp,不捕获文本,也不分配组号 (?=exp) 匹配exp前面的位置 (?<=exp) 匹配exp后面的位置 (?!exp) 匹配后面不是exp的位置 (?<!exp) 匹配前面不是exp的位置 (?#comment) 注释 //贪婪与懒惰 a.*?b 匹配最短的,以a开始,以b结束的字符串。 当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符,这被称为贪婪匹配。懒惰匹配,也就是匹配尽可能少的字符,化为懒惰匹配模式,只要在它后面加上一个问号?。 //处理选项 IgnoreCase 忽略大小写 Multiline 多行模式 Singleline 单行模式,更改.的含义,使它与每一个字符匹配(包括换行符\n)。 IgnorePatternWhitespace 忽略空白 ExplicitCapture 显式捕获 //平衡组/递归匹配 平衡组的一个最常见的应用就是匹配HTML。 < #最外层的左括号 [^<>]* #最外层的左括号后面的不是括号的内容 ( ( (?'Open'<) #碰到了左括号,在黑板上写一个"Open" [^<>]* #匹配左括号后面的不是括号的内容 )+ ( (?'-Open'>) #碰到了右括号,擦掉一个"Open" [^<>]* #匹配右括号后面不是括号的内容 )+ )* (?(Open)(?!)) #在遇到最外层的右括号前面,判断黑板上还有没有没擦掉的"Open";如果还有,则匹配失败 > #最外层的右括号 //其他 \n 换行符 \t 制表符 \r 回车