正则表达式小记

一下均是由我从gun manual翻译过来的 翻译得有些蹩脚 但是自己能看懂 方便以后查看 其实鸟哥私房菜里涵盖了GNU manual 中正则部分90%的内容,需要的可以参考鸟哥linux菜鸟私房菜

 

字典字母匹配他本身
圆点(.)匹配除换行,null以外的任意字符 如 ‘a.b‘ 匹配以a开头b结尾的三个字符的字符串
连接操作符 把B紧跟A后,结果为一个正则表达式将匹配一个字符串如果A匹配地一部分,B匹配第二部分

重复操作符 ‘*’, ‘+’,‘ ?’
* 匹配零次或零次以上 ‘fo*’ 匹配 ‘f‘, ‘fo‘, ‘foo‘等
+ 匹配一次或一次以上
? 匹配零次或一次

间隔操作符{ } or /{ /}
{COUNT}匹配确切的COUNT次符合之前正则表达式的单词
{MIN,}匹配MIN次或多于MIN次符合之前正则表达式的单词
{MIN, MAX}匹配至少MIN次,但是不多于MAX次满足先前正则表达式单词
以下情况无效:
    1.MIN大于MAX
    2.任何COUNT,MAX,MIN在0和‘RE_DUP_MAX‘之外

选择操作符 |
满足表达式中任何一个条件的都会被匹配到 如‘foo|bar|quux‘ 将匹配到‘foo‘, ‘bar‘, 或者‘quux‘

列表操作符 [ ]
匹配中括号中列出的字符中的一个 如[ab]匹配a 或 b
不匹配列表以“[^字符]“给出,如[^ab]匹配除a,b 以外的所有字符
中括号中的字符叫做列表,列表中的特殊字符意义不同,若要出现‘]’,则需要转义
‘[:’表示起始字符类操作符,如果‘RE_CHAR_CLASSES’设置则跟随其后的是一个有效的字符类表达式
‘:]’表示闭合字符类操作符,如果‘RE_CHAR_CLASSES’设置则它之前的起始字符操作符跟有效字符类加上结束字符操作符组成一个整体
‘-’表示范围操作符
其他所有字符皆为字典字符(无转义)如‘[.*]’匹配.和‘*’
注意:在list中‘^’并不是开始字符

字符类操作符 [: :]
如果语义位‘RE_CHARACTER_CLASSES’设置,则正则表达式引擎能够识别列表(list)中的字符类表达式
格式如下 [:class-name:]
字符类名和意义如下
alnum 字母和数字
alpha 字母
blank 系统相关,GNU系统,一个空格或者是一个tab
cntrl control字符,ASCII编码,码值0177和码值小于040
digit 数字
graph 与print相同,除了省略空格
lower 小写字母
print 可打印字符,ASCII编码中,空格,波形符号-码值040到0176
punct 既不是control也不是字母字符
space 空格 回车,换行,垂直tab,form feed
upper 大写字母
xdigit 16进制数字

范围操作符 ‘-’
正则引擎识别列表(list)中的范围表达式 如[a-f]表示包含a,f在内的字符区间
如果RE_NO_EMPTY_RANGES设置,则起始点对照表顺序大于终止点则无效,如[z-a],如果该位没有设置,则表达式认为该区间为空
a.如果要在列表中使用‘-’,则把它放在列表开头或者结尾
b.包含一个范围,使得他的其实点对照表小于‘-’,他的结束点等于或大于'-',除非一个区间是列表中的第一个元素,否则‘-’不能成为他的起始点,但是能作为它的结束点。这是因为正则引擎把‘-’当作区间操作符除非它之前有另一个‘-’(Include a range whose starting point collates strictly lower than `-' and whose ending point collates equal or higher. Unless a range is the first item in a list, a `-' can't be its starting point, but _can_ be its ending point. That is because Regex considers `-' to be the range operator unless it is preceded by another `-'.)
例如在ASCII码中,‘)’, ‘*’ , ‘+’, ‘,’ , ‘-’, ‘.’, ‘/’字符在顺序对照表中是连续的字(abcd这种形式),形如‘[)-+--/]’有区间‘)-+’和‘+--’加上字符‘/’,并不是 ‘)-+'
     和 ‘--/'.
c.把区间操作符‘-’放在列表的第一个元素位置,
例如‘[-a-z]’匹配小写字母或者是一个连字号

分组操作符 ( )
分组操作符有称作子表达式,正则表达式把括号中的序列连同括号视为一个单元
使用分组可以做到:
a.delimit the argument(s) to an alternation operator or a repetition operator
b.keep track of the indices of the substring that matched a given
     group.

后引用操作符(我们常说的转义字符) /
n  


定位操作符
‘^’ 匹配行首操作符
‘$’ 匹配行尾操作符

GNU操作符
‘/b’单词边界匹配操作符
‘/B’ 单词内匹配操作符
‘/<’ 单词开始匹配操作符
‘/>’单词结尾匹配操作符
‘/w’ Match-word-constituent Operato
‘/W’ Match-non-word-constituent Operator:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值