4-19-1 Linux中的正则表达式 --- 匹配次数
2022-04-19 本文已影响0人
捌千里路雲和月
1、匹配次数:指的是某一个字符出现了多少个。
2、常用参数:
- ①、* 匹配前面的字符任意次,包含 0 次。
- ②、.* 任意长度任意字符(可匹配空格、空白字符、符号),相当于通配符的 * 。
- ③、\ ? 匹配前面的字符 0 次或 1 次。
- ④、\ + 匹配前面的字符至少 1 次。
- ⑤、\ {n\ } 匹配前面的字符 n 次。(等于多少次)
- ⑥、\ {m,n\ } 匹配前面的字符至少 m 次,最多 n 次。(大于等于多少次,小于等于多少次)
- ⑦、\ {,n\ } 匹配前面的字符最多 n 次。(小于多少次)
- ⑧、\ {n,\ } 匹配前面的字符至少 n 次。(大于多少次)
3、实操练习
- ①、* 匹配前面的字符任意次,包含 0 次。
[root@localhost ~]# vim regexpTest.txt
hello world
13800138000
~
~
~
:wq
[root@localhost ~]# cat regexpTest.txt
hello world
13800138000
[root@localhost ~]#
* 号匹配前面字符出现的情况
* 号匹配 0 次前面字符出现的情况
- 当 * 号和多个字符匹配文本中的内容时,凡有出现的字符都会标红。
- 当 * 号前是字符串不是单个字符时,过滤的是字符串本身。
- 12*3,没有 2 这个字符时取13作为过滤条件
- 12*3:过滤 1 和 3 中间没有 2 和 有任意个 2 的行。
[root@localhost ~]# vim regexpTest.txt ## 编辑 regexpTest.txt 新增内容
hello world
13800138000
123 ## 新增的内容
1223
12300122223
~
~
~
:wq
1 和 3 之间允许有任意个 2
- [ ]* 中括号加星的效果,1[0-9]*3 是 1 和 3 之间允许任何数字出现任意次作为条件去匹配内容。 允许 1 和 3 之间可以没有任何字符,当 1 和 3 中间没有其他字符时。取 13 为过滤条件去匹配内容。
- 同理,1[a-Z]*3:1 和 3 之间可以没有大小写字母,中间没有大小写字母时用13去匹配内容,也可以是 1 和 3 之间存在任意数量的大小字母。
- 值得注意的是 [ . ] 中括号内的点是它本身,并不是任意单个字符。
- ②、.* 任意长度任意字符(可匹配空格、空白字符、符号),相当于通配符的 * 。
- 编辑 regexpTest.txt 内容。
[root@localhost ~]# vim regexpTest.txt
apple
banana
cat
dog
egg
~
~
~
:wq
[root@localhost ~]# cat regexpTest.txt
apple
banana
cat
dog
egg
[root@localhost ~]#
- .* 是过滤所有字符。
- regexpTest.txt 新增内容
[root@localhost ~]# vim regexpTest.txt
apple
applle ##<--- 新增的内容
aabbccddee ##<--- 新增的内容
banana
cat
dog
~
~
~
:wq
- a.* 是过滤 a 作为开始字符,后面任意长度的字符。
- a.*e 是过滤 a 开头,e 结尾,中间任意长度的字符。
- .*a 是过略字符a结尾,前面任意长度的字符(含 a )。
- .* 可以过滤空格、tab、空白字符、符号、大小写英文、数字 和 输入的图形。
- regexpTest.txt 输入相关的内容。
[root@localhost ~]# vim regexpTest.txt
空格:
teb:
空白字符:
符号:~ ` ! @ # $ % ^ & * () _ - + = {} [] | \ : " ; ' <> ? , . /
大小写英文:AaBbCcDd
数字:123456
图形:★ ○ ● ◎ ◇ ◆ □ ■ △ ▲ ※ → ← ↑ ↓ 〓
~
~
~
:wq
- 搜狗拼音半角输入v1d 是空白字符。
- .* 输出的情况。
③、\ ? 匹配前面的字符 0 次或 1 次。
④、\ + 匹配前面的字符至少 1 次。
⑤、\ {n} 匹配前面的字符 n 次。(等于多少次)
⑥、\ {m,n\ } 匹配前面的字符至少 m 次,最多 n 次。(大于等于多少次,小于等于多少次)
⑦、\ {,n\ } 匹配前面的字符最多 n 次。(小于等于多少次)
⑧、\ {n,\ } 匹配前面的字符至少 n 次。(大于等于多少次)