正则表达式大全(正则表达式大全网站)
## 正则表达式大全### 简介正则表达式(Regular Expression,简称Regex或RegExp)是一种强大的文本模式匹配工具,用于在字符串中查找、匹配、替换特定模式的文本。它利用预定义的字符集和特殊字符,构建起描述文本模式的规则,以实现高效的文本处理操作。正则表达式被广泛应用于各种编程语言、文本编辑器、数据库以及网络爬虫等领域。### 基础语法#### 1. 字符匹配| 字符 | 描述 | 示例 | 匹配结果 | |---|---|---|---| | . | 匹配任意单个字符(除换行符\n) | a.c | abc, a1c, a@c等 | | [] | 匹配括号内任意单个字符 | [abc] | a, b, 或 c | | [^] | 匹配不在括号内任意单个字符 | [^abc] | 除a, b, c以外的任意字符 | | - | 在[]中表示字符范围 | [a-z] | 所有小写字母 | | \d | 匹配数字(0-9) | \d\d | 00-99的任意两位数字 | | \D | 匹配非数字 | \D\d | 例如a1, #2等 | | \w | 匹配字母、数字、下划线 | \w\w\w | 例如abc, a12, _1a等 | | \W | 匹配非字母、数字、下划线 | \W\w | 例如$a, %b等 | | \s | 匹配空白字符(空格、制表符、换行符) | a\sb | a b | | \S | 匹配非空白字符 | a\Sb | 例如ab, a1等 |#### 2. 量词| 量词 | 描述 | 示例 | 匹配结果 | |---|---|---|---| |
| 匹配前面的字符或子表达式零次或多次 | a
| "", a, aa, aaa等 | | + | 匹配前面的字符或子表达式一次或多次 | a+ | a, aa, aaa等 | | ? | 匹配前面的字符或子表达式零次或一次 | a? | "", a | | {n} | 匹配前面的字符或子表达式n次 | a{3} | aaa | | {n,} | 匹配前面的字符或子表达式至少n次 | a{2,} | aa, aaa, aaaa等 | | {n,m} | 匹配前面的字符或子表达式n到m次 | a{2,4} | aa, aaa, aaaa |#### 3. 定位符| 定位符 | 描述 | 示例 | 匹配结果 | |---|---|---|---| | ^ | 匹配字符串开头 | ^abc | 以abc开头的字符串 | | $ | 匹配字符串结尾 | abc$ | 以abc结尾的字符串 | | \b | 匹配单词边界 | \bword\b | 匹配完整的单词"word" | | \B | 匹配非单词边界 | \Bword\B | 匹配包含在其他单词中的"word" |#### 4. 特殊字符| 特殊字符 | 描述 | 转义 | |---|---|---| | .
+ ? [ ] ( ) { } \ | 元字符,需要转义才能匹配其本身 | \. \
\+ \? \[ \] \( \) \{ \} \\ |### 高级用法#### 1. 分组与捕获使用括号()可以将一部分正则表达式括起来组成一个子表达式,可以对子表达式进行量词修饰,也可以使用编号反向引用匹配的内容。例如:
`(ab)+` 匹配一个或多个连续的"ab"。
`(\d{3})-(\d{4})` 匹配形如"123-4567"的电话号码,可以使用\1和\2分别引用匹配到的区号和号码。#### 2. 或运算使用竖线`|`可以实现或运算,匹配其中一个表达式即可。例如:
`cat|dog` 匹配"cat"或"dog"。#### 3. 非贪婪模式默认情况下,量词都是贪婪的,会尽可能多地匹配字符。可以使用`?`将贪婪模式改为非贪婪模式,使其尽可能少地匹配字符。例如:
`a.
b` 会匹配"aabab"中的"aabab"。
`a.
?b` 会匹配"aabab"中的"aab"和"ab"。#### 4. Lookaround断言
`(?=)` 正向先行断言:断言自身出现的位置的后面能匹配表达式exp。
`(?!)` 负向先行断言:断言自身出现的位置的后面不能匹配表达式exp。
`(?<=)` 正向后顾断言:断言自身出现的位置的前面能匹配表达式exp。
`(?
`(?<=\$)\d+` 匹配"$"符号后面的数字。
`\w+(?=\.)` 匹配"."符号前面的单词。### 应用场景
数据验证:
验证邮箱地址、手机号码、身份证号等格式是否正确。
字符串查找与替换:
在文本中查找和替换特定模式的字符串。
网页爬虫:
从网页源代码中提取需要的信息。
日志分析:
分析日志文件,提取关键信息。
代码高亮:
对代码中的关键字、注释等进行高亮显示。### 总结正则表达式是一个非常强大且灵活的工具,学习和掌握它可以大大提高文本处理的效率。希望本“正则表达式大全”能够帮助您更好地理解和应用正则表达式。