zoukankan      html  css  js  c++  java
  • shell 正则表达式与文件名匹配

    1) . : 匹配任意单ASCII 字符,可以为字母,或为数字。
    2) 举例: ..XC..匹配deXC1t、23XCdf 等,.w..w..w.匹配rwxrw-rw-
    行首以^匹配字符串或字符序列
    1) ^ : 允许在一行的开始匹配字符或单词。
    2) 举例: ^.01 匹配0011cx4、c01sdf 等,^d 匹配drwxr-xr-x、drw-r--r--等
    行尾以$匹配字符串或字符
    1) $ : 在行尾匹配字符串或字符,$符号放在匹配单词后。
    2) 举例: trouble$ 匹配以单词trouble 结尾的所有行
    ^$匹配所有空行

    使用*匹配字符串中的单字符或其重复序列(与文件名置换中的"*"不一样)
    1) * : 一个单字符后紧跟*,匹配0 个或多个此单字符。
    2) 举例: compu*t 将匹配字符u 一次或多次,即匹配computer computing compuuute 等
    1033* 可以匹配 101333 10133 1013444 等
    3) 在正则表达式中使用"*",有时会产生非预期的结果。

    使用屏蔽一个特殊字符的含义
    1) : 用来屏蔽一个元字符的特殊含义。因为有时在shell 中元字符有特殊含义。可以使其失去应有意义。
    2) 举例: 在正则表达式匹配以*.pas 结尾的所有文件: *.pas$

    使用[]匹配属于一个范围或集合单个字符
    1) [ ] : 匹配"[ ]"内的字符。可以是一个单字符,也可以是字符序列。可以使用"-"表示括号"[ ]"内字符序列范围,
    如用[1-5]代替[12345]。可以用逗号","分隔括号"[]"内的字符。
    2) 当"^"符号当直接靠着"[",意指否定或不匹配括号"[]"里内容
    3) 举例: [0-9]匹配任意一个数字;[a-z]匹配任意一个小写字母;[0-9A-Za-z]匹配任意字母或数字;
    [C,c]omputer 匹配Computer 和computer;[^a-zA-Z]匹配任一非字母型字符

    使用"{}"匹配模式结果出现的次数
    1) pattern{n} 

     : 匹配模式pattern 出现n 次的情形。
    2) pattern{n,}  : 匹配模式pattern 最少出现n 次的情形。
    3) pattern{,m}  : 匹配模式pattern 最多出现m 次的情形。
    4) pattern{n,m} : 匹配模式pattern 出现次数在n 与m 之间的情形。
    5) 举例: A{2}B 匹配的值为AAB
    A{2,}B   匹配的值可以是AAB 或AAAAAB,但不能匹配AB
    A{2,4}B  匹配的值可以是AAB、AAAB、AAAAB,但不能匹配AB 或AAAAAB 等
    [0-9]{4}CX[0-9]{4}  匹配数字出现4 次后跟CX,最后是数字出现4 次的情形
    6) 实际上真正的格式是 {n} {n,} {,m} {n,m},只不过对"{"和"}"应用了Esacpe 字符""。

    经常使用的正则表达式举例
    [Ss]igna[lL]   匹配单词signal、signaL、Signal、SignaL
    [Ss]igna[lL]. 同上,但加一句点
    ^USER$         只包含USER 的行
    .             带句点的行
    ^d..x..x..x    对用户、用户组及其他用户、组成员有可执行权限的目录
    ^[^l]          排除符号链接文件后的文件目录列表(即不是以"l"开始的行)
    [yYnN]         大写或小写y 或n
    ^.*$           匹配行中任意字符串
    ^......$       包括6 个字符的行
    [a-zA-Z]       任意单个字母
    [a-z]*         至少一个小写字母
    [^0-9$]       非数字或美元符号
    [123]          1 到3 中一个数字
    ^q            以^q 开始行
    ^.$            仅有一个字符的行
    ^.[0-9][0-9]  以一个句点和两个数字开始的行
    [0-9]{2}-[0-9]{2}-[0-9]{4}               
    日期格式dd-mm-yyyy
    [0-9]{3}.[0-9]{3}.[0-9]{3}.[0-9]{3}  类IP 地址格式
                                                   
    nnn.nnn.nnn.nnn
    .*             匹配任意多个字符
  • 相关阅读:
    内网邮件服务器搭建
    solr的命令
    solr的post.jar
    Java IO(四--字符流基本使用
    Java IO(三)--字节流基本使用
    Java IO(二)--RandomAccessFile基本使用
    Java集合(三)--Collection、Collections和Arrays
    Java集合(二)--Iterator和Iterable
    Java IO(一)--File类
    Java基础(十四)--装箱、拆箱详解
  • 原文地址:https://www.cnblogs.com/jackydalong/p/3716303.html
Copyright © 2011-2022 走看看