重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2284|回复: 0
打印 上一主题 下一主题

[基础命令] linux下的正则表达式

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-24 19:11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
什么是正则表达式
正则表达式是一种描述一组字符串的模式,为处理大量文本、字符串而定义的一套规则和方法,以行为单位进行处理。正则表达式分为两类:基本正则表达式(BRE)和扩展正则表达式(ERE)。在linux中使用正则表达式较多的有三个工具,分别为grep,sed和awk,这三个工具被称为linux文本处理的三剑客。

基本正则表达式
字符匹配:
    .:匹配任意单个字符
    [ ]:匹配指定范围内的任意单个字符
    [^]:匹配指定范围外的任意单个字符
      几种特殊表示:

特殊符号
代表意义
[:alnum:]
代表英文大小写字符及数字,亦即 0-9, A-Z, a-z
[:alpha:]
代表任何英文大小写字符,亦即 A-Z, a-z
[:blank:]
代表空白键与 [Tab] 按键两者
[:cntrl:]
代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:]
代表数字而已,亦即 0-9
[:graph:]
除了空白字符 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:]
代表小写字符,亦即 a-z
[:print:]
代表任何可以被打印出来的字符
[:punct:]
代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:]
代表大写字符,亦即 A-Z
[:space:]
任何会产生空白的字符,包括空白键, [Tab], CR 等等
[:xdigit:]
代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字符
匹配次数:
    *:匹配其前面的字符任意次(0次、1次或多次)
    .*:匹配任意长度的任意字符
    \?:匹配起前面字符0次或1次
    \+:匹配其前面字符1次或多次
    \{m\}:匹配其前面的字符m次
    \{m,n\}:匹配其前面字符最少m次,最多n次
    \{m,\}:匹配其前面字符最少m次
    \{,n\}:匹配其前面字符最多n次
  位置锚定:
    ^:行首锚定
    $:行尾锚定
      ^$:匹配空白行
    \<或\b:词首锚定
    \>或\b:词尾锚定
      \<PATTERN\>:匹配完整的单词
  分组及引用:
    \(\):将多个字符捆绑在一起,当做一个整体处理
    分组括号匹配到的内容,会被正则表达式引擎自动记录到内部变量中,变量为
    \1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符
    \2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符

扩展正则表达式
字符匹配:
    .:匹配任意单个字符
    [ ]:匹配指定范围内的任意单个字符
    [^]:匹配指定范围外的任意单个字符
  次数匹配:
    *:匹配其前面的字符任意次(0次、1次或多次)
    ?:匹配起前面字符0次或1次
    +:匹配其前面字符1次或多次
    {m}:匹配其前面的字符m次
    {m,n}:匹配其前面字符最少m次,最多n次
    {m,}:匹配其前面字符最少m次
    {,n}:匹配其前面字符最多n次
  位置锚定:
    ^:行首锚定
    $:行尾锚定
    \<或\b:词首锚定
    \>或\b:词尾锚定
  分组及引用:
    ():分组;括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中,变量为\1,\2等
  或:
    |:a|b表示a或者b

比较基本正则表达式和扩展正则表达式发现,基本正则表达式的很多符号需要转义“\”,而扩展正则表达式不需要

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-5 18:38 , Processed in 0.092612 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表