正则表达式语法大全
正则表达式是一种强大的文本匹配工具,广泛应用于软件开发、网页抓取、数据处理和自动化测试等领域,它能够帮助我们以编程方式快速查找、替换和验证各种复杂的字符串模式,本文将详细介绍正则表达式的语法结构和常用符号,帮助您全面掌握这一实用的编程技巧。
基本元素
-
字符类
[]
匹配指定范围内任意一个字符。[abc] # 匹配 'a', 'b' 或 'c'
[!...]
匹配不在括号内的任何字符。[^abc] # 匹配 'd', 'e' 或 'f'
-
**范围`
\w
匹配字母、数字或下划线。\w # 匹配字母、数字或下划线
\W
匹配非字母、数字或下划线。\W # 匹配非字母、数字或下划线
\s
匹配空白字符(包括空格、制表符等)。\s # 匹配空白字符
\S
匹配非空白字符。\S # 匹配非空白字符
-
量词
- 多次匹配前面的字符或子表达式。
* # 匹配0到多次的任何字符
- 至少一次匹配前面的字符或子表达式。
+ # 匹配至少一次的任何字符
{n}
指定精确次数。{n} # 匹配恰好n次的任何字符
{n,m}
指定最少和最多次数。{n,m} # 匹配n到m次的任何字符
- 多次匹配前面的字符或子表达式。
-
边界条件
^
匹配行首。^ # 匹配行首
- 匹配行尾。
$ # 匹配行尾
\b
匹配单词边界。\b # 匹配单词边界
-
特殊字符转义
\
转义特殊字符,使其不具有特殊含义。\d # 不匹配数字,而是匹配小数点
-
分组和捕获
- 和 分组并保存结果。
(ab)+ # 组合为 "(ab)+"
- 使用
\g<index>
获取捕获的分组值。(\d{3})\.\d{3}\.\d{4} # 将 "XXXX.XXX.XXXX" 替换为 "XXXXX"
- 和 分组并保存结果。
-
否定分组
- 否定分组。
(?![abc]) # 否定 "[abc]"
- 否定分组。
-
负向前瞻/后瞻
- 验证是否包含某个模式。
(?=.*abc) # 验证是否有 'abc' 子串
- 非法正则。
(?!.*abc) # 验证没有 'abc' 子串
- 验证是否包含某个模式。
-
命名分组
<name>
命名分组。(?:foo|bar) # 可选的 foo 或 bar 分组
-
全局匹配
g
全局搜索标志,用于在整个字符串中搜索多个匹配。/pattern/g # 查找所有匹配项
-
惰性分组
- 模糊匹配,可选分组。
(...)(?=\D) # 寻找连续的数字
- 模糊匹配,可选分组。
-
锚点
^
表示匹配开始位置。^hello # 匹配 "hello"
- 表示匹配结束位置。
world$ # 匹配 "world"
通过以上基本规则和组合使用方法,您可以构建出复杂而灵活的正则表达式来满足各种需求,在实际应用中,根据具体场景选择合适的正则表达式,可以大大提高代码质量和效率。