正则表达式(regular expression)是一种表示方式,在许多地方均有对此的支持,如命令grep、语言Python、工具vim等。但是这里仅讨论POSIX正则表达式,显然它与其他正则表达式(如传统的Unix正则表达式)存在稍许的差异。POSIX正则表达式分为:BRE(Basic Regular Expression)和ERE(Extended Regular Expressions)。以下是有关POSIX正则表达式的元字符(meta)的说明:

/
用于关闭后续字符的特殊意义。有时用于反向的打开后续字符的特殊意义。
.
(点号)匹配任意单个的字符,但NULL除外。
*
匹配任意数目的字符(可以为0)。以ERE来说,此前置字符可是正则表达式,如.*代表了匹配任意字符的长度。但对于BRE而言,*置于正则表达式的第一个字符,不具任何特殊意义。
^
(脱字号)匹配出现在行首或字符串开始位置的空字符串。ERE:置于任何位置都具特殊含义;BRE:仅在正则表达式的开头具有此特殊含义。
$
匹配出现在行末的空字符串。ERE:置于任何位置都具特殊含义;BRE:仅在正则表达式的结尾具有此特殊含义。
[...]
方括号表达式,匹配方括号内的任意一字符。连字符(-)指的是连续字符的范围。^符号置于方括号里第一个字符则有反向含义:指的是匹配不在列表内(方括号内)的任意字符。作为首字符的一个连字符或是结束方括号(]),则被视为列表的一部分。所有其他的meta字符也为列表的一部分。

以下只属于BRE
/{n-m}
区间表达式,匹配在它之前的单个字符重现的次数区间。/{n/}指的是重复n次;/{n,/}则为至少出现n次重复,而/{n,m}为重现n至m次。
/( /)
/(与/)间的模式存储在特殊的“保留空间”。最多可将9个独立的子模式存储在单个模式中。如/(ab/).*/1,指的是匹配于ab组合的两次重现。
/n
重复在/(与/)方括号内第n个子模式至此点的模式。n为1至9的数字,由左开始。

以下只属于ERE
{n,m}
与先前提及的BRE的/{n,m/}一样,只不过方括号前没有反斜杠。
+
匹配前面正则表达式的1个或多个实例
?
匹配前面正则表达式的0个或1个实例
|
匹配于|符号前或后的正则表达式。
( )
匹配于方括号括起来的正则表达式群。

POSIX方括号表达式:
1、字符集
[::]
2、排序符号
[..]
3、等价字符集
[=
=]

具体如下:
[:alnum:]
数字字符
[:alpha:]
字母字符
[:blank:]
空格与定位字符
[:cntrl:]
控制字符
[:digit:]
数字字符
[:graph:]
非空格字符
[:lower:]
小写字母字符
[:print:]
可显示的字符
[:punct:]
标点符号字符
[:space:]
空白字符
[:upper:]
大些字母字符
[:xdigit:]
十六进制数字

同时在使用时运算符存在顺序问题,以下是由高至地的:
BRE:
1、[. .] [= =] [: :]
2、/meta
3、[]
4、/( /) /digit
5、* /{ /}
6、无符号
7、^ $ .

ERE:
1、[. .] [= =] [: :]
2、/meta
3、[]
4、()
5、* + ? {}
6、无符号
7、^ $ .
8、|

可参考资料:
1、http://en.wikipedia.org/wiki/Regular_expression
2、http://www.regular-expressions.info/
3、http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html
4、http://www.ibm.com/developerworks/cn/aix/library/au-regexp/

POSIX正则表达式相关推荐

  1. POSIX正则表达式 验证电子邮件地址

    我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用"正则表达式"(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法.有 ...

  2. Postgresql学习笔记之——模糊匹配LIKE、SIMILAR TO和POSIX正则表达式

    1.介绍 Postgresql数据库中提供三种实现模糊匹配的方式: 1.传统的SQL的LIKE操作. 2.SQL99中SIMILAR TO操作符. 3.POSIX风格的正则表达式. 另外还有一个模式匹 ...

  3. POSIX风格正则表达式

    From: http://blog.chinaunix.net/space.php?uid=20501242&do=blog&id=1940007 4.9  POSIX风格正则表达式 ...

  4. Oracle 正则表达式

    ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与S ...

  5. oracle元字符,oracle中正则表达式的基本元字符

    前面我们介绍了oracle中正则表达式的基本元字符和常用的两个函数regexp_like和 regexp_instr.这里我们再继续介绍剩下的两个正则表达式函数regexp_replace和regex ...

  6. oracle的正则表达式(regular expression)简单介绍

    目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境. Oracle 10g正则表达式提高了SQL灵活性.有效的解 ...

  7. 现代 ABAP 编程语言中的正则表达式

    在这篇博文中,我想分享现代 ABAP 中正则表达式的最新消息和变化,主要来自 OP 版本 7.55 和 7.56. 以前,在 ABAP 中使用 POSIX 样式的正则表达式或"uniX 的便 ...

  8. like效率 regexp_Oracle 中like效率 正则表达式 浅析

    Oracle 中like常用但是其效率不是高. 特别是使用%a%----->全局扫描,没有利用到任何索引. 情况可以的条件尽量下使用a%------>可以利用正序的索引. %a------ ...

  9. Linux中自带正则表达式应用举例

    环境:Fedora12, C程序: #include <stdio.h> #include <string.h> #include <sys/types.h> #i ...

最新文章

  1. c语言编程题及答案-难,C语言常见编程题及答案40题
  2. 数据结构课上笔记14
  3. 腾讯已问灵魂,鹅厂新立家风
  4. 优秀程序员必须知道的八件事情
  5. Picture exceed the maximum allowable rotation range
  6. sqlmap DVWA脱库
  7. 洛谷试炼场P1035 级数求和
  8. 健康体检信息系统源码、医院体检源码 医院管理系统源码
  9. 强化学习必知二要素:计算效率和样本效率
  10. 基于GIS的中国历代名人人生轨迹研究
  11. centos7开启网卡命令_Centos7启动网卡并查看IP地址的方法
  12. 如何成为一名数据科学家?
  13. 鸿蒙无锡有什么特产,无锡太湖鼋头渚十大特产
  14. miniui的列数据渲染
  15. 机考怎么作弊_电脑考试怎么作弊
  16. 计算机毕业设计ssm大学生科技活动报名系统2h1ir系统+程序+源码+lw+远程部署
  17. java+磁盘io监控_磁盘IO利用率监控VBS脚本(windows)
  18. html页面转换成图片的三种方法——canvas、dom-to-image、html2canvas
  19. 如何使用帮助文档echarts
  20. 路由选择协议——RIP协议

热门文章

  1. 二十几岁的女孩应该有这几点思想
  2. sonar覆盖率、代码覆盖率、分支覆盖率的计算方式
  3. 什么是企业oa办公系统登录入口?oa办公系统哪家好?
  4. 十月二日读书笔记(JSP网页的内置对象)
  5. 分布式系统限流策略/秒杀系统限流设计
  6. 名编辑电子杂志大师教程 | 名编辑在线电子书如何生成手机桌面图标?
  7. 网络舆情如何有效预警的方式方法详解
  8. ps计算机网络海报,PS教程:Photoshop制作星空云海创意海报
  9. 【杂记】火狐浏览器主页被2345恶意篡改解决方法
  10. 联想 小新 pro13 笔记本 扩展坞 HDMI 外接显示器 失败 无反应