一、正则表达式: 能用某种模式去匹配一类字符串的公式,由一串字符和元字符组成。
元字符: 表示的是一个单词开始或结束的位置。以下介绍一些比较常用的元字符.
1 “.” 符号
点符号用于匹配除换行符之外的任意一个字符。例如在/etc/passwd中搜索出包含r,紧跟着1个字符,后面再接t:

在/etc/passwd中搜索出包含r,紧跟着2个字符,后面再接t:

2. “*” 符号
"*"符号用于匹配前一个字符0次或任意多次。当与.符号一起用,例如 ".* "表示任意长度的不包含换行的字符。在/etc/passwd搜索 r*t

在/etc/passwd搜索 r.*t

3. “\{n,m\}” 符号
\{n,m\}精确控制匹配的重复次数,使用方法主要有三种:
- \{n\}:匹配前面的字符n次.例如搜索ro\{2\}t

- \{n,\}:匹配前面的字符至少n次以此(包含n次).例如搜索ro\{1,\}t

- \{n,m\:匹配前面的字符n次到m次.例如搜索ro\{1,3\}t

4. “^” 符号
尖角号符号用于匹配开头的字符。例如搜索^sy

5. “$” 符号
$符号用于匹配尾部,例如搜索以s开头,中间包含任意字符串,并以n结尾的

6. “[]” 符号
方括号:用于匹配方括号内出现的任一字符。例如:

也可写成以下方式,注意"-"不是充当一个字符。

若搜索所有字母也可写成[A-Za-z]。若匹配的不是大写的字母,则可以在方括号里使用^,代表取反。

7. “\” 符号
“\” 符号代表转义。例如.*代表的是任意长度的不包含换行的重复字符。但如果想要匹配任意长度的点号,则需要写成\.*
8. “\<“和”\>” 符号
"\<“和”\>“分别用于界定单词的左边界和右边界。比如说用”<hello"用以匹配以hello开头的单词;比如说用"hello>"用以匹配以hello结尾的单词。两个一起使用用于精确匹配一个字符串。例如:
[root@node1 etc]# echo 'helloworld' | grep '\<hello\>'
[root@node1 etc]# echo 'hello' | grep '\<hello\>'
hello
二.扩展的正则表达式
扩展的正则表达式是对基础正则表达式的一些补充。但需要注意的是使用这些扩展的符号时,需要使用egrep命令。例如:
- “?”: 用于匹配前一个字符0次或者1次
- “+”: 用于匹配前一个字符1次以上
- “|”:'表达或的意思,即多种可能的罗列,彼此间是一种分支关系
- “()”: 通常和"|"符号联合使用,用于枚举一系列可替换的字符。

本文详细介绍了正则表达式的各种元字符及其用法,包括点符号、星号符号、重复次数控制、开头与结尾匹配、字符集合匹配等,并进一步讲解了扩展的正则表达式符号。
520

被折叠的 条评论
为什么被折叠?



