正则表达式是一种强大的文本处理工具,用于搜索、替换、或验证字符串模式。由于正则表达式的语法非常丰富,我将提供一个概览,介绍最常用的元素和构造。
字面量
- 普通字符:大部分字符,如
a、b、1,都代表它们自己。
特殊字符
.:匹配除换行符之外的任何单个字符。^:匹配输入字符串的开始位置。$:匹配输入字符串的结束位置。*:匹配前面的子表达式零次或多次。+:匹配前面的子表达式一次或多次。?:匹配前面的子表达式零次或一次。{n}:匹配前面的子表达式恰好 n 次。{n,}:匹配前面的子表达式至少 n 次。{n,m}:匹配前面的子表达式至少 n 次,但不超过 m 次。|:选择,匹配|前或后的子表达式。\( \):将括号内的表达式定义为一个“组”(group),并且可以通过\1、\2等引用它们。[ ]:字符类,匹配括号内的任意字符。[^ ]:否定的字符类,匹配不在括号内的任意字符。
转义字符
\:将其后的特殊字符转义为字面量,例如\.匹配字符.。
预定义字符类
\d:匹配任何数字,等价于[0-9]。\D:匹配任何非数字字符,等价于[^0-9]。\w:匹配任何字母数字字符,包括下划线,等价于[A-Za-z0-9_]。\W:匹配任何非字母数字字符,等价于[^A-Za-z0-9_]。\s:匹配任何空白字符,包括空格、制表符、换行符等。\S:匹配任何非空白字符。
界定符
\b:匹配一个单词边界,即字与空格间的位置。\B:匹配非单词边界。
标志(依赖于正则表达式引擎)
i:不区分大小写。g:全局搜索。m:多行模式。
示例
hello:匹配字符串 "hello"。^a:匹配所有以 'a' 开头的字符串。n$:匹配所有以 'n' 结尾的字符串。a.b:匹配 'a' 后面跟着任何字符,然后是 'b'。a[bc]d:匹配 "abd" 或 "acd"。a[^bc]d:匹配 "a" 后跟一个非 "b" 或 "c" 的字符,然后是 "d"。\d{2,4}:匹配 2 到 4 位数字。
正则表达式的具体语法和功能可能略有不同,这取决于你使用的具体语言或工具(如 Perl、Python、JavaScript、Java 等)。每种环境都可能有自己的一些特定