目录

正则表达式初识

Regex正则表达式

组成

(1)字符类

1.字符集:[ABC] 匹配集合中的任何一个字符

例子:[aeiou] 匹配:glib jocks vex dwarves!

2.否定集[^ABC] 匹配不在集合中的任何一个字符

例子:[^aeiou] 匹配:glib jocks vex dwarves!

3.范围[A-Z] 匹配(含)两个指定字符之间的任意字符 例子:[g-s] 匹配:abcdefghijklmnopqrstuvwxyz

4.点. 匹配除换行符之外的任何一个字符 相当于[^\n\r]

例子:.匹配:glib jocks vex dwarves!

5.匹配任何[\s\S] 一个字符集,可用于匹配任何一个字符,包括换行符

例子:[\s\S]匹配:glib jocks vex dwarves!

6.单词\w 匹配任何一个单词字符(字母数字和下划线) 仅匹配低位 ASCII 字符(无重音字符或非罗马字符),相当于[A-Za-z0-9_]

例子:\w匹配:bonjour,mon frère 7.非单词\W 匹配任何一个非单词字符(字母数字和下划线) 相当于[^A-Za-z0-9_]

例子:\W匹配:bonjour,monNULLfrère

8.数字\d 匹配任何一个数字字符 (0-9) 相当于[0-9]

例子:\d匹配:+1-(444)-555-1234

9.非数字\D 匹配任何一个非数字字符 (0-9) 相当于[^0-9]

例子:\D匹配:+1-(444)-555-1234

10.空格\s 匹配任何一个空白字符(空格、制表符、换行符) 相当于[^0-9]

例子:\s匹配:glibNULLjocksNULLvexNULLdwarves!

11.非空格\S 匹配任何一个非空白字符(空格、制表符、换行符) 相当于[^0-9]

例子:\S匹配:glib jocks vex dwarves!

(2)量词和交替

1.加号:+匹配 1 个或多个前面的标记

例子:b\w+ 匹配:b be bee beer beers

2.星号:*匹配 0 个或多个前面的标记

例子:b\w* 匹配:b be bee beer beers

3.量词:{1,3}匹配指定数量的的标记 {1,3}将匹配 1 到 3,{3}将完全匹配 3,{3,}将匹配 3 个或更多

例子:b\w{2,3}* 匹配:b be bee beer beers

4.optional:匹配前面标记的 0 或 1 个,有效地使其成为可选的

例子:colou?r* 匹配:color colour

5.lazy:使前面的量词惰性化,使其匹配尽可能少的字符 默认情况下,量词是贪婪的,会匹配尽可能多的字符

例子:b\w+?* 匹配:b be bee beer beers

6.交替:|类似于布尔 OR。匹配之前或之后的表达式 它可以在一个组内运行,也可以在整个表达式上运行

例子:b(a|e|i)d 匹配:bad bud bod bed bid

(3)锚点

1.开始:^匹配字符串的开头 如果m启用了多行标志 ( ),则匹配一行的开头。这匹配一个位置,而不是一个字符

例子:^\w+ 匹配:she sells seashells

2.结尾:$匹配字符串的结尾 如果m启用了多行标志 ( ),则匹配一行的结尾。这匹配一个位置,而不是一个字符

例子:\w+$ 匹配:she sells seashells

3.单词边界:\b匹配单词字符和非单词字符或位置(字符串的开始/结束)之间的单词边界位置 例子:s\b 匹配:she sells seashells

4.非单词边界:\B匹配任何不是单词边界的位置 这匹配一个位置,而不是一个字符。

例子:s\B 匹配:she sells seashells

参考