正则表达式和扩展正则的使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
正则表达式是一种用来匹配和处理文本的工具,而扩展正则(Extended Regular Expression)是在 POSIX 标准下扩展而成的正则表达式。它们的使用方法有些不同。

正则表达式的基本使用方法已在上一个问题中介绍过了,这里再介绍一下扩展正则的使用方法:

匹配单个字符
.:匹配除了换行符以外的任意一个字符
[ ]:匹配括号中列出的任意一个字符
[^ ]:匹配除了括号中列出的任意一个字符以外的所有字符
\d:匹配数字字符
\D:匹配非数字字符
\w:匹配字母、数字和下划线字符
\W:匹配非字母、数字和下划线字符
\s:匹配空格、制表符和换行符
\S:匹配非空格、制表符和换行符字符
匹配多个字符
*:匹配前面的字符零次或多次
+:匹配前面的字符一次或多次
?:匹配前面的字符零次或一次
{n}:匹配前面的字符恰好 n 次
{n,}:匹配前面的字符至少 n 次
{n,m}:匹配前面的字符至少 n 次,最多 m 次
匹配位置
^:匹配字符串的开头
$:匹配字符串的结尾
\b:匹配单词边界,即单词和非单词字符之间的位置
\B:匹配非单词边界的位置
分组和引用
( ):将括号中的表达式作为一个分组,并且可以在后面通过\1、\2等来引用这些分组
其他
|:匹配两个或多个表达式之一
\:用于转义特殊字符
在扩展正则中,除了上述基本规则外,还增加了一些功能:

匹配重复字符
{n}:匹配前面的字符恰好 n 次
{n,}:匹配前面的字符至少 n 次
{n,m}:匹配前面的字符至少 n 次,最多 m 次
?+:匹配重复的零次或多次,但尽可能匹配更多字符
??:匹配重复的零次或一次,但尽可能匹配更少字符
匹配位置
\b:匹配单词边界,即单词和非单词字符之间的位置
\B:匹配非单词边界的位置
^:匹配行的开头
$:匹配行的结尾
正则表达式和扩展正则在用法上有些不同,但都是相似的基本规则。如果您需要使用扩展正则,在命令中需要指定使用扩展正则,例如在 grep 命令中使用扩展正则,则应该加上 -E--extended-regexp 的参数。
阅读剩余
THE END