zoukankan      html  css  js  c++  java
  • linux中的通配符与正则表达式

    在linux中,有通配符及正则表达式,那么什么是通配符和正则表达式,什么时候用?
     

    通配符

    它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通配符有几下几种:
    *:匹配任意多个字符
    ?:匹配任意一个字符
    [...]:匹配中括号内出现的任意一个字符
    [!...]:不匹配中括号内出现的任意一个字符
     
    一般出现在要shell命令或脚本中,匹配特定的文件名
     
     

    正则表达式

    它是一个字符匹配标准,一些命令工具按此标准实现字符匹配,根据命令支持的匹配功能可分为基础正则表达式和扩展正则表达式,常用于支持正则表达式的工具,如sed,grep,awk...
    有如下一些常用的匹配元字符:
     
    字符匹配
    .:匹配任意单个字符
    *:匹配其前面一个字符出现任意次
    ?:匹配其前面的字符1次或0次
    +:匹配其前面一个字符出现至少一次(在扩展正则表达式中)
     
    位置匹配
    ^:锚定行首
    $:锚定行尾
    <或:锚定词首,其后面的任意字符必须作为单词首部出现
    >或:锚定词尾,其前面的任意字符必须作为单词尾部出现
    B:非单词的开头或结尾
    ^$:空白行
     
    分组() :
    (ab)* : 匹配ab这个分组出现任意次
    1:引用第一个左括号以及与之对应的右括号所包括的所有内容,同理还有2,3
     
    特殊子字符类:
    [:alnum:] :任何字母和数字
    [:alpha:] :任何字母
    [:cntrl:] :控制字符. 在ASCII表中对应八进制000 到 037, 和177 ('DEL').
    [:digit:] :任何数字
    [:graph:] :匹配打印字符,相当于'[:alnum:]' +'[:punct:]'.
    [:lower:] :小写字母
    [:print:] :可打印字符,相当于 '[:alnum:]', '[:punct:]', 和space.
    [:punct:] 标点符号,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ _ ' { | } ~'
    [:space:] 空白字符,tab, newline, vertical tab, form feed, carriage return, and space.
    [:upper:] 大写字母
    [:xdigit:] 任何16进制的数字,相当于[0-9a-fA-F]
    所以:^[[:space:]]*$ :匹配没有任何内容的行
     
    需要注意:[]中的特殊字符如.已经失去了其特殊含义,和方括号中的普通字符[abc]一样。
     
     
  • 相关阅读:
    LeetCode 275. H-Index II
    LeetCode 274. H-Index
    LeetCode Gray Code
    LeetCode 260. Single Number III
    LeetCode Word Pattern
    LeetCode Nim Game
    LeetCode 128. Longest Consecutive Sequence
    LeetCode 208. Implement Trie (Prefix Tree)
    LeetCode 130. Surrounded Regions
    LeetCode 200. Number of Islands
  • 原文地址:https://www.cnblogs.com/zejin2008/p/5990863.html
Copyright © 2011-2022 走看看