这里写目录标题
正则表达式
- 正则表达式使用
单个字符串
来描述、匹配一系列符合某个语法规则的字符串。 - 在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
- 在 Linux 中,grep, sed,awk 等文本处理工具都支持通过正则表达式进行模式匹配。
1. 常规匹配
一串不包含特殊字符
的正则表达式匹配它自己,例如:
2. 常用特殊字符
2.1 特殊字符:^
^
匹配一行的开头,例如:^a
会匹配出所有以 a 开头的行
2.2 特殊字符:$
$
匹配一行的结束,例如:t$
会匹配出所有以 t 结尾的行
思考:^$ 匹配什么?^kankan$呢?
答:^$
匹配的是文本中所有的空行,^kankan$
匹配的是以kankan开头和结尾的行,即该行只有kankan
答:^kankan$
匹配的是以kankan开头和结尾的行,即该行只有kankan
修改test.txt文件
kankan hahahaha kankan
kankan
2.3 特殊字符:.
.
匹配一个任意的字符,例如
2.4 特殊字符:*
*
不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次,例如
2.5 字符区间:[ ]
[ ]
表示匹配某个范围内的一个字符,例如
[ ] # 表示匹配某个范围内的一个字符,例如
[6,8] # 匹配 6 或者 8
[0-9] # 匹配一个 0-9 的数字
[0-9]* # 匹配任意长度的数字字符串
[a-z] # 匹配一个 a-z 之间的字符
[a-z]* # 匹配任意长度的字母字符串
[a-c, e-f] # 匹配 a-c 或者 e-f 之间的任意字符
2.6 特殊字符:\
\
表示转义,并不会单独使用。
由于所有特殊字符都有其特定匹配模式,当我们想匹配某一特殊字符本身时,就会碰到困难。
此时我们就要 将转义字符和特殊字符连用,来表示特殊字符本身,记得加单引号
。例如