zoukankan      html  css  js  c++  java
  • linux学习笔记(十二)

    正则表达式基础

    1.正则表达式 regular expression
    一个正则表达式通常被称为一个模式(pattern),为来描述或者匹配一系列符合某个句法规则的字符串。

    2.基本语法

    选择:
    | “boy|girl”可以匹配boy或girl

    数量限定:

    • 表示前面的字符必须出现至少一次(1次或多次),如“goo+gle”可以匹配“gooole”,“goooole”
      ? 表示前面的字符最多出现一次(0次或1次),如“colou?r”可以匹配“color”、“colour”
    • 表示前面的字符可以不出现、或者出现一次或者出现多次(0次、或1次、或多次),如“0*42”可以匹配42、042、0042、00042等

    范围和优先级:
    ( ) 用来定义定义模式字符串的范围和优先级。
    如gr(a|e)y 等级与gray|grey
    (grand)?father 匹配father和grandfather

    部分语法:
    将系一个字符标记为一个特殊字符或一个原义字符。如“n”匹配“n”,“ ”匹配换行符,“”匹配,(匹配(

    ^ 匹配输入字符串的开始位置
    $ 匹配输入字符串的结束位置
    {n} n是一个非负整数,匹配确定的n次
    {n,} n是一个非负整数,至少匹配n次。{1,}等价于+,{0,}等价于*
    {n,m} n,m均为非负整数,n<m,最少匹配n次,最多匹配m次

    • 匹配前面的子表达式零次或多次
    • 匹配前面的子表达式一次或多次
      ? 匹配前面的子表达式零次或一次
      ? 当?紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面,匹配模式是非贪婪的,非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式尽可能多的匹配所搜索的字符串。如“00000”,“0+?”匹配“0”,“0+”匹配所有0
      (patter)匹配pattern并获取之一匹配的子字符串
      x|y 匹配x或y
      [xyz] 字符集合,匹配所包含的任意一个字符。其中特殊字符仅有反斜线保持特殊含义,用于转义字符。其它特殊字符如星号、加号、各种括号等均作为普通字符。脱字符^如果出现在首位则表示负值字符集合;如果出现在字符串中间就仅作为普通字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符

    [^xyz] 排除型字符集合。匹配未列出的任意字符。
    [a-z] 字符范围,匹配制定范围内的任意字符
    [^a-z] 排除型字符范围。匹配任何不在制定范围内的任意字符

    3.优先级
    转义符、括号中括号、限定符、定位点和序列(^,$,任何元字符)、选择

    4.grep模式匹配命令
    grep命令用于打印输出文本中匹配的模式串,使用正则表达式作为匹配条件。
    grep 参数 模式 file
    -b 将二进制文件作为文本来进行匹配
    -c 统计与模式匹配的数目
    -i 忽略大小写
    -n 显示匹配文本所在行的行号
    -v 反选,输出不匹配行的内容
    -r 递归匹配查找
    -A n after,除列出匹配行外,还列出后面的n行
    -B n before,除列出匹配行外,还列出前面的n行
    --color=auto 将输出的匹配项设置为自动颜色显示

    grep支持三种正则表达式引擎
    -E ERE,扩展正则表达式
    -G BRE,基本正则表达式
    -P PCRE ,perl正则表达式

    5.使用正则表达式:
    基本正则表达式BRE

    ...位置:查找/etc/group文件中以“shiyanlou”开头的行
    grep ‘shiyanlou’/etc/group
    grep '^shiyanlou' /etc/group

    ...数量:

    ...选择:

    完整的特殊符号及说明:

    6.使用扩展正则表达式ERE
    grep -E 或者用egrep

    ...数量:

    ...选择:

    其中.有特殊含义,需要转义

    7.sed流编辑器
    sed工具用于过滤和转换文本的流编辑器
    sed 参数 执行命令 file
    -n 安静模式,只打印受影响的行,默认打印输入数据的全部内容。
    -e 用于脚本中添加多个执行命令一次执行,在命令行中执行多个命令通常不需要加盖参数
    -f filename 执行指定filename文件中的命令
    -r 使用扩展正则表达式,默认为标准正则表达式
    -i 将直接修改输入文件内容,而不是打印到标准输出设备

    sed编辑器的执行命令--略

    8.awk文本处理工具--略

  • 相关阅读:
    购物网站数据库表
    C#Excel的导入与导出
    DataTable过滤重复字段
    压力测试~一套完整的压力测试项目文档
    压力测试~测试工具的使用
    C#调用本机摄像头
    linq学习笔记
    EasyPlayer RTSP播放器对RTSP播放地址url的通用兼容修改意见
    我们计划为EasyDSS定制开发一款超低延时的EasyPlayer Flash播放器
    EasyRTMP+EasyDSS实现一套完整的紧急视频回传直播与存储回放方案
  • 原文地址:https://www.cnblogs.com/xflyer/p/10422174.html
Copyright © 2011-2022 走看看