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

    慢慢记录。因为使用频率的原因,这个东西学了忘忘了学。

    基本正则表达式(regular expression)

    cp /etc/passwd /home/axe/test(复制模版文件)

    cd home/axe/test

    1."."表示任意单个字符。

    grep :...: passwd #匹配::之间有三个字符的行。

    2."*"匹配前一个字符0次或者n次

    grep 00* passwd #匹配含有0的行

    3.".*"匹配多个字符

    4."[]"匹配[]中的任一字符

    grep :1[01]*: passwd

    5.[x-y]匹配连续的字符串

    [0-9],[a-z]

    6."^"匹配字串的头

    grep ^root passwd

    7."$"匹配字串的尾

    8."[^n]"匹配否定

    9."{n,}"匹配前一个字符重复至少n次

    "{n,m}"匹配前一个字符重复n-m次。

    "{n}"匹配前一个字符重复n次

    grep "o{2,}" passwd #(要加引号) 匹配o至少两次

    grep "o{1,2}" passwd #匹配o1-2次

    grep "o{2}" passwd #匹配o两次

    扩展正则表达式(Extended Regular Expression)

    linux常用工具支持扩展正则的有egrep awk等等。

    1.{n,m} 等同于基本正则里的{n,m},匹配前一个字符n-m次

    2.+ 等同于基本正则里的 {1,} 匹配前一个字符1次或者多次

    3.? 等同于基本正则里的{0,1} 匹配前一个字符0次或者1次。

    4.| 匹配逻辑或者 eg: egrep "axe|root" passwd

    POSIX规范
    [:alpha:] 字母字符

    [:alnum:] 字母与数字字符

    [:cntrl:] 控制字符

    [:digit:] 数字字符

    [:xdigit:] 16进制

    [:punct:] 标点

    [:graph:] 非空格字符

    [:print:] 任何可以显示的字符

    [:space:] 空白

    [:blank:] 空格与tab

    [:lower:] 小写字符

    [:upper:] 大写字符

    在linux里POSIX规范可以通过[]引用。举个栗子,grep --color [[:digit:]] passwd

    GUN规范

    主要是转义元字符

    应用实例

    匹配一篇文章中所有的单词book

    egrep "(^| )["[({]*book["])}?.,;:'s]*($| )" file

    细节:

    1.book前可能出现的字符有 "{([ ,ps.此处双引号使用反斜杠转义。

    2.book后可能出现的字符有"})].,?:'s

    3.在book两边有空格或者行首行尾标志^和$

  • 相关阅读:
    [转]理解java的三大特性之多态
    [转]java:IO流学习小结
    Base64 加密之中文乱码
    piwik优化之定时任务生成统计数据
    php统计中英文混合的文章字数
    Linux常用命令之定时任务
    skype在线状态代码详解
    php+google/baidu翻译接口
    php限制文件下载速度的代码
    PHP破解wifi密码(wifi万能钥匙的接口)
  • 原文地址:https://www.cnblogs.com/axeprpr/p/4830955.html
Copyright © 2011-2022 走看看