zoukankan      html  css  js  c++  java
  • shell 正则表达式

    基础正则表达式

    *   前一个字符匹配0次或任意多次
    .   匹配除了换行符以外任意一个字符。
    ^   匹配行首,例如^hello会匹配以hello开头的行
    $   匹配行尾,例如hello$会匹配以hello结尾的行
    []  匹配括号中的任意一个字符,只匹配一个字符
    [0-9]匹配任意一位数字,[a-z][0-9]匹配小写字母和一位数字构成的两位字符
    [^] 匹配括号以外的任意字符,[^0-9]匹配任意一位非数字字符
       转义符,用于取消将特殊符号的含义取消
    {n}   表示前面的字符恰好出现n次
    [0-9]{4}匹配4位数字
    {n,}  表示前面的字符出现不小于n次,[0-9]{2,}表示两位及以上的数字
    {n,m} 表示其前面的字符至少出现n次,最多出现m次,[a-z]{6,8}匹配6到8位小写字母
    

    测试注意

    "*" 前一个字符匹配0次,或任意多次
    a* #匹配所有内容,包括空白行
    aa* #匹配至少包含有一个a的行
    aaa* #匹配至少包含两个连续a的字符串
    aaaaa* #匹配至少包含四个连续a的字符串
    "."匹配换行符以外任意一个字符
    "s..d" 匹配在s和d两个字母之间一定有两个字符的单次
    "s.*d" 匹配在s和d两个字母之间有任意字符
    ".*" 匹配所有内容
    ​
    ^ 匹配行首, $匹配行尾
    ^M 匹配大写M开头的行
    n$ 匹配以小写n结尾的行
    ^$ 会匹配空白行 
     
    [] 匹配中括号中指定的任意一个字符,只匹配字符
    "s[ao]id" 匹配s和i字母中,要不是a,要不是o
    "[0-9]" 匹配任意一个数字
    "^[a-z]" 匹配用小写字母开头的行
     
    [^] 匹配除中括号的字符以外的任意一个字符
    "^[^a-z]" 匹配不用小写字母开头的行
    "^[^a-zA-Z]" 匹配不用字母开头的行
    

    正则表达式和通配符区别

    正则表达式用来做字符串的模式分割,匹配,查找以及替换操作
    正则表达式与通配符

    >
      正则表达式用来在文件匹配符合条件的字符串,正则是包含匹配
      grep,awk,sed等命名可以支持正则表达式
    > 
      通配符用来匹配符合条件的文件名,通配符是完全匹配
      ls,find,cd 这些命名不支持正则表达式,所以只能使用shell自己的通配符进行匹配
    

    通配符

    '*' 匹配任意内容
    '?' 匹配任意一个内容
    '[]' 匹配括号中的任意一个字符
    
  • 相关阅读:
    Array之foreach
    gulp之gulp-uglify模块的大坑-------------默认不支持IE8
    Only the original thread that created a view hierarchy can touch its views
    android 组件隐藏
    android 字体加粗
    android studio 创建图标
    Can't create handler inside thread that has not called Looper.prepare()
    Failed to connect to /127.0.0.1:8080
    socket failed: EACCES
    android 无法import
  • 原文地址:https://www.cnblogs.com/ssgao/p/8871611.html
Copyright © 2011-2022 走看看