分类: 系统运维
2011-01-22 00:58:57
参考 余晟的正则视频课程,将课程的例子用模式匹配练习,同时学习正则及模式匹配知识,顺便了解二者的区别。此贴仅是我学习的记录过程,日后我再整理一份完整的模式匹配学习资料。 一。字符组(正则) 1.1 []意味着匹配指定一组字符中的一个 正则最基本结构之一,作用是规定某个位置能够出现的字符,形式是以[...]给出,在方括号[...]内列出字符。 使用方括号 [... ] 包含一系列字符,能够匹配其中任意一个字符。虽然可以是任意一个,但只能是一个。 如 [0123456789]去匹配一个字符组{"1";"2";"3";"4";"5";"6";"7";"8";"9";"0";"x"},匹配结果是{"1";"2";"3";"4";"5";"6";"7";"8";"9";"0"}都成功的,除了x不符合。 1.2 连字符"-"字符组支持由连字符“-”来表示一个范围。 当“-”前后构成范围时,要求前面字符的码位小于后面字符的码位。 如上面[0123456789]可以简化写成[0-9]或[0123-9]...表示0-9所有字符。 示例1 注意:在字符组内部,连字符若在方括号内的最前面,则是匹配“-”符号,如[-123]是匹配“-”、“1”、“2”“3”其中一个,,此时就不是连字符了,只有当连字符出现在两个字符之间时,才能表示字符的范围。 示例2 1.3[^…] 排除型字符组。(模式匹配称“补集”)作用:规定某个位置不容许出现的字符,形式以[^...]给出,在方括号内列出不容许出现的字符。 排除型字符组表示任意一个未列出的字符,同样只能是一个。排除型字符组同样支持由连字符“-”来表示一个范围。 示例3 []在模式匹配中是用来创建自定义的字符类,匹配其中之一的字符,同正则。 1.4字符组简记法(常见6种) 示例 4 1.5 特殊的简记法 - 点号点号“ .” 可以匹配几乎所有字符,但不能匹配换行符(特殊模式下可以匹配换行符,模式匹配可匹配换行符) “\.” 加上转义符“\”则匹配点号“.”本身, 点号在方括号内[.]也是匹配点号本身 示例 5 |