正则表达式
来源:互联网 发布:知乎 朱锋 编辑:程序博客网 时间:2024/05/22 02:00
POSIX 定义了两种正则表达式语法:基本正则表达式(BRE)和扩展正则表达式(ERE)。
下表为meta字符
字符BRE/ERE模式含义 / 两者皆可 关闭后续字符的特殊意义 . 两者皆可 匹配任何单个的字符,NULL除外 * 两者皆可 匹配在之前的任何数目的单个字符。如.*代表匹配任意字符的任意长度 ^ 两者皆可 匹配紧接着的正则表达式,在行或者字符串的起始处,^The代表行首为The $ 两者皆可匹配紧接着的正则表达式,在行或者字符串的结尾处
^$匹配空行,例:cc -E foo.c | grep -v '^$' > foo.out 编译源码后删除空行
[...] 两者皆可 匹配方括号内的任一字符,连字符-指的是连续字符的范围 /{n,m/} BRE 匹配之前的单个字符重复出现的次数,/{n/}重复出现n次,/{n,m/}重复出现n到m次,/{n,/}至少重复出现n次 /( /) BRE把/( /)之间的模式存储在特殊的保留空间"holding space"中,最多可存9个,可通过/1到/9被重复使用在相同模式中。如/(ab/).*/1代表ab重复两次出现,中间可保存任何数目的字符。如ab123ab,或abab
常用与查找重复字以及匹配引号,如/([" ']/).*/1 匹配以单引号或双引号括起来的字,如'good', "abc"等
/n BRE /(/)内第n个子模式到该点的模式。n为1到9的数字,1由左开始 {n,m} ERE 类似于BRE的/{n,m/} + ERE 匹配前面正则表达式的一个或多个实例 ? ERE 匹配前面正则表达式的0个或1个实例 | ERE 匹配于|前或后的正则表达式 ( ) ERE 匹配与方括号括起来的正则表达式群。
POSIX 字符集(Character class):以[:与:]将关键字组合括起来的POSIX字符集。关键字描述各种不同的字符集,例如英文字母字符、控制字符等
具体如下:
[[:alnum:]] 文本数字字符 [[:punct:]] 标点符号
[[:alpha:]] 字母字符 [[:blank:]] 制表符和空格
[[:lower:]] 小写字母 [[:sapce:]] 空白字符
[[:upper:]] 大写字母 [[:cntrl:]] 控制符
[[:digit:]] 数字 [[:print:]] 所有可打印的字符
[[:xdigit:]] 十六进制数字 [[:graph:]] 除空格外所有可打印的字符
排序符号(Collating symbol)
排序符号指的是将多字符序列视为一个单位。它使用[.与.]将字符组合括起来。排序符号在系统所使用的特定locale上各有其定义。
[[.ch.]]则匹配于ch(排序元素),但字母c或h则不是。
等价字符集(Equivalence class)
等价字符集列出的是应视为等值的一组字符,以[=与=]括住,[[=e=]]可能匹配于e、ē、ě、è、é、ê等
/<单词首, />单词尾
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 增加积分的方法
- std::tr1::function
- oracle简明整理文档
- 【转】mysql-trigger-触发器
- Cbitmap与HBITMAP和其它的类似问题
- 正则表达式
- 数据仓库与传统关系型数据库的差别
- 马上就要学习java的ssh了,心情好激动
- 贪婪法解决大小油壶问题
- 网易电子邮箱背景色为什么这么红
- oracle中instr函数
- 无法解析导入org.eclipse.swt
- ORACLE里几种锁模式
- SQL SERVER中一些常见性能问题的总结