zoukankan      html  css  js  c++  java
  • 正则表达式【TLCL】

    grep【global regular expression print】        print lines matching a pattern

    grep [options] regex [file...]

    regex 是指一个正则表达式

    grep选项列表:

    -i          忽略大小写--ignore-case

    -v          invert match

    -c          打印匹配的数量,而不是文本行本身--count

    -l          打印包含匹配项的文件名,而不是文本行本身 --files-with-matches      

    -L          相似于-l 选项,但是只是打印不包含匹配项的文件名--files-without-match

    -n          打印相应的行号--line-number

    -h          应用于多文件搜索,不输出文件名--no-filename

    •  元义字符和原字符

    ^ $ . [ ] { } - ? * + ( ) | 
    注意:正如我们所见到的,当 shell 执行展开的时候,许多正则表达式元字符,也是对 shell 有特殊 含义的字符。把元字符用引号引起来至关重要, 这样可以阻止 shell 试图展开它们。

    .        匹配在此位置的任意一个字符
    ^        锚点,行开头
    $        锚点,行结尾
    [***]      字符集合,元字符被放置到中括号里面后会失去了它们的特殊含义。^表示否定,-表示范围。

    注意:
    • 要包含-:可将-放在开头[-***]
    • 字典顺序和ASCII 顺序不同,[A-Z]不总是工作【查看LANG变量】
    • POSIX字符集

    [:alnum:]          字符数字字符,在ASCII中等价于[A-Za-z0-9]

    [:word:]           增加了下划线

    [:alpha:]          字母字符

    [:blank:]          包含空格和tab

    [:cntrl:]          ASCII的控制码,0-31,127

    [:digit:]          0-9

    [:graph:]          可视字符,33-126

    [:lower:]          小写字母

    [:punct:]          标点符号字符

    [:print:]          可打印字符,在[:graph:]中的所有字符,再加上空格字符。

    [:space:]          在 ASCII 中, 等价于[ vf]

    [:upper:]          大写字母

    [:xdigit:]          表示十六进制数字的字符

    locale命令,查看locale操作。

    • POSIX基本的 Vs.扩展的正则表达式

    BRE:

    可以识别 ^ $ . [ ] *

    字符“(”,“)”,“{”,和 “}”用反斜杠转义后,被看作是元字符

    ERE:

    添加了 ( ) { } ? + |

    在任意元字符之前加上反斜杠会导致其被看作是一个文本字符

    • egrep 【grep -E】

    echo "AAA" | grep -E 'AAA|BBB|CCC'

    为了把 alternation 和其它正则表达式元素结合起来,我们可以使用()来分离 alternation。

    grep -Eh '^(bz|gz|zip)' dirlist*.txt

    • 限定符

    ?          匹配零个或者一个元素

    eg:^(?[0-9][0-9][0-9])?  [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

    通常圆括号都是元字符(在 ERE 中),所以我们在圆括号之前加上了反斜杠,使它们成为文本字符

    *          匹配零个或多个元素

    [[:upper:]][[:upper:][:lower:] ]*.

    +          匹配一个或多个元素

    ^([[:alpha:]]+ ?)+$

    {}          匹配特定个数的元素

    {n} n次, {n,m} n到m次, {n,}大于等于n次, {,m}小于等于m次

    • find

    find . -regex '.*[^-\_./0-9a-zA-Z].*'

    注意:

    当某一行包含的字符串匹配上了一个表达式的时候,grep 命令会打印出这一行

    find 命令要求路径名精确地匹配这个正则表达式

    • locate查找文件

    locate 程序支持基本的(--regexp 选项)和扩展的(--regex 选项)正则表达式

    • 在less和vim中查找文本

    vim 支持基本的正则表达式

    在扩展表达式中,许多被认为是元字符的字符在基本的表达式中被看作是文本字符,

    只有用反斜杠把它们转义之后,它们才被看作是元字符。

  • 相关阅读:
    Brain network involved in autonomic functions 与自主功能相关的大脑网络
    Brief summary of classical components of ERP 事件相关成分(ERP)经典成分小结
    ICA & Percentage Variance Account For (PVAF)
    数据处理中白化Whitening的作用图解分析
    Loadings vs eigenvectors in PCA 主成分分析(PCA)中的负荷和特征向量
    主成分分析(PCA)和独立成分分析(ICA)相关资料
    Sketch of heart and QRS complex 心脏及QRS波群简图
    Brain Network visulation in EEG 脑电网络可视化
    Phase Locking Value (PLV) 神经信号的锁相值
    ubuntu16.04下的一些基本操作笔记
  • 原文地址:https://www.cnblogs.com/songdechiu/p/9980512.html
Copyright © 2011-2022 走看看