美文网首页js css html
4-19-1 Linux中的正则表达式 --- 匹配次数

4-19-1 Linux中的正则表达式 --- 匹配次数

作者: 捌千里路雲和月 | 来源:发表于2022-04-19 02:08 被阅读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,没有 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 次。(大于等于多少次)

    相关文章

      网友评论

        本文标题:4-19-1 Linux中的正则表达式 --- 匹配次数

        本文链接:https://www.haomeiwen.com/subject/qdahzltx.html