By francis_hao    Oct 1,2017

 

这里的正则表达式主要是指扩展正则,也就是egrep(grep -e)用到的正则表达式。

字符

含义

类别说明

|

分割分支,正则表达式会去匹配每个分支。一个正则表达式就是由一个或多个分支组成。

 

*

跟在原子数据后,匹配0个或多个原子数据

*、+、?和bond是分支的基本组件,若干个这样的组件串接起来形成一个分支。

+

跟在原子数据后,匹配1个或多个原子数据

?

跟在原子数据后,匹配0个或1个原子数据

{m,n}

范围带(bond),可能的形式有:{m}、{m,}和{m,n}。m和n的取值范围为0~RE_DUP_MAX(255)。跟在原子数据后,匹配m-n个原子数据。

()

用()将原子数据包含起来,表示一个子匹配。一个空的()匹配一个空串。

 

.

匹配任意一个字符。

 

^

匹配行首

 

$

匹配行尾

 

\

转义字符,可转义字符:"^.[$()|*+?{\",对于其他字符,"\"无意义(相当于没有)

{字符在后面跟了不是数字的字符时,表示一个普通字符,不需要转义。

正则表达式不能以"\"字符结尾。

 

[]

表示匹配被[]括起来的字符集里的任意一个字符。

  • 如果集合以^开头,则表示匹配不是此字符集里的任意一个字符
  • 字符集可以使用"-"以简化表示,如[0-9]表示数字字符集
  • 如果字符集包含"]",将它放在第一个位置,可以跟在"^"后面(如果有)
  • 被"[:"和":]"括起来的字符类的名字,表示此类的字符集合,字符类名有:alnum digit punct alpha graph space blank lower upper cntrl print xdigit(定义在wctype(3))
 

正则匹配遵循最长匹配原则

 

 


本文由 刘英皓 创作,采用 知识共享署名-非商业性使用-相同方式共享3.0中国大陆许可协议 进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/7617004.html

 

 

参考

【1】man 7 regex

POSIX.2 正则表达式的更多相关文章

  1. posix,perl正则表达式区别

    1.正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式.正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用来描述或者匹配一系列符合 ...

  2. 【regex】POSIX标准正则表达式库

    在linux C 下面没有编译成功使用?号的非贪婪模式. 网上的一句话:the ? only works for Perl-based regexp, not for POSIX... 如果需要使用非 ...

  3. POSIX基本正则表达式和扩展正则表达式的比较

    转自:http://book.51cto.com/art/201303/385961.htm 在读者正觉得正则表达式已经复杂得不能再复杂时,又会发现POSIX规范将正则表达式的实现方法分为了两种:基本 ...

  4. POSIX扩展正则表达式函数

    1.ereg()函数和eregi()函数 函数语法: bool ereg/eregi ( string pattern, string string [, array regs] ) 函数功能: 在字 ...

  5. 从零开始攻略PHP(5)——字符串操作与POSIX正则

    一.字符串操作 1.字符串的格式化 1.1 干掉空格 trim()函数可以除去字符串开始位置和结束位置的空格,并将结果字符串返回. ltrim()函数可以除去字符串开始位置的空格. rtrim()函数 ...

  6. PHP中的正则表达式的使用

    PHP中的正则表达式基础知识1.正则表达式就是描述字符串排列模式的一种自定义语法规则2.如果可以使用字符串处理函数完成的任务,就不使用正则表达式3.有一些复杂的操作,只能使用正则表达式完成4.正则表达 ...

  7. PHP 正则表达式语法

    则表达式简介 在某些应用中,往往有时候需要根据一定的规则来匹配(查找)确认一些字符串,如要求用户输入的 QQ 号码为数字且至少 5 位.用于描述这些规则的工具就是正则表达式. 最简单的匹配 最简单的匹 ...

  8. PHP 正则表达式匹配 preg_match 与 preg_match_all 函数

    --http://www.5idev.com/p-php_preg_match.shtml 正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的 ...

  9. (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础

    介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...

随机推荐

  1. web自动化原理揭秘

    做过两年自动化测试的小伙伴说web自动化测试真的不难,无非就是一些浏览器操作,页面元素操作,常规的情况很容易处理,再学一学特殊元素的处理,基本就能应付项目的测试了. 这个话倒没错,但是真正要学好自动化 ...

  2. Python列表操作大全(非常全)

    Python列表操作大全(非常全!!!) 对于python列表的理解可以和C语言里面的数组进行比较性的记忆与对照,它们比较相似,对于python里面列表的定义可以直接用方括号里加所包含对象的方法,并且 ...

  3. [JSON].toXMLString()

    语法:[JSON].toXMLString() 返回:[String] 说明:将[JSON]实例转换成XML格式结果. 示例: <% jsonString = "{div: 'hell ...

  4. 【progress】 进度条组件说明

    progress 进度条组件 原型: <progress percent="[Float(0-100)]" show-info="[Boolean]" b ...

  5. JVM--内存模型与线程

    一.硬件与效率的一致性 计算机的存储设备与处理器的运算速度存在几个数量级的差距,现在计算机系统不得不在内存和处理器之间增加一层高速缓存(cache)来作为缓冲.将运算需要的数据复制到缓存中,让运算能够 ...

  6. C++错误:Process returned -1073741571 (0xC00000FD)

    最近写程序时,需要将一个一维数组编程二维数组,很简单,写完之后,运行错误! 提示:Process returned -1073741571 (0xC00000FD) 刚开始写的代码如下: #inclu ...

  7. 1.Hadoop介绍

    1. Hadoop介绍 1.1 什么是Hadoop 开源的,可靠的,分布式的,可伸缩的 提供的功能: 利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 1.2 处理方式 大众角度 数 ...

  8. mysql入门 — (1)

    使用cd进入到mysql/bin文件夹下面,或者配置完环境之后,直接在cmd中使用mysql,然后回车开启mysql. 登录 为了安全考虑,在这里只设置了本地root用户可以连接上数据库.使用的指令是 ...

  9. iOS- UIButton/UIImageView/UISlider/UISwitch操作

    如果看不到图片 可以尝试更换浏览器(推荐Safari ) 一.控件的属性 1.CGRect frame 1> 表示控件的位置和尺寸(以父控件的左上角为坐标原点(0, 0)) 2> 修改这个 ...

  10. AjaxPro怎么用

    AjaxPro是首家支持以各种方式通过javascript访问服务端.net的免费库,类似于SAJAX.它能把Javascript请求发送到.NET方法,服务端传回给Javascript,甚至包括串行 ...