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. Git与远程仓库关联以及关联错误解决方法

    假设你github的用户名是  helloworld  ,你在上面创建了一个 名为 hello 的 repository. 一. 与本地仓库进行关联 1.1用原生ssh进行关联,速度快: git re ...

  2. 第4章 TCP/IP通信案例:访问Internet上的Web服务器

    第4章 TCP/IP通信案例:访问Internet上的Web服务器 4.2 部署代理服务器 书中为了演示访问Internet上的Web服务器的全过程,使用了squid代理服务器程序模拟了一个代理服务器 ...

  3. java实现网页截图

    使用工具 java+selenium+phantomjs /chromedriver /firefox 1.分别是 phantomjs插件 google截图插件 和 firefox火狐浏览器截图插件2 ...

  4. python 终级篇 django ---ORM操作

                                       一般操作                                                          必会的 ...

  5. Appium ——Android KEYCODE键值:

    Python下语法: driver.keyevent(键值) 电话按键: 键名 描述 键值 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME ...

  6. LeetCode 135——分发糖果

    1. 题目 2. 解答 初始化左序奖赏全为 1,从左往右遍历,如果右边的人评分比左边高,右边奖赏比左边奖赏增 1. 初始化右序奖赏全为 1,从右往左遍历,如果左边的人评分比右边高,左边奖赏比右边奖赏增 ...

  7. python作业:三级菜单(第一周)

    一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二.三级菜单 ...

  8. .Net并行编程 - Reactive Extensions(Rx)并发浅析

    关于Reactive Extensions(Rx) 关于Reactive Extensions(Rx),先来看一下来自微软的官方描述: The Reactive Extensions (Rx) is ...

  9. centos环境配置(nginx,node.js,mysql)

    1.安装 Install GCC and Development Tools on a CentOS yum group install "Development Tools" n ...

  10. bootstrap列表添加滚动条

    有时候列表中数据过多,导致超出页面,影响视觉感受.这时我们需要添加一个滚动条. 初始状态如图: 代码如下: <ul class="list-group"> <li ...