正则表式

正则表达式是基于样式匹配的文本处理技术的关键所在。想要在编写文本处理工具方面驾轻就熟,你就必须对正则表达式有一个基本的理解。正则表达式是一种用于文本匹配的形式小巧、具有高哦啊嘟针对性的编程语言。只依靠通配符技术,能够匹配的文本范围相当有限。本文将对基础的正则表达式进行详解。

正则表达式 描述 实例
^ 行起始标记 ^tux匹配以tux起始的行
$ 行尾标记 tux$匹配以tux结尾的行


.


匹配任意一个字符

Hack.匹配Hackl和Hacki,但是不能匹配Hackl2和Hackil,它只能匹配单个字符
[] 匹配包含在[字符]之中的任意一个字符 coo[kl]匹配cook或cool
[^]
匹配除[^字符]之外的任意一个字符 9[^01]匹配92、93,但是不匹配91或90
[-] 匹配[]中指定范围内的任意一个字符 [1-5]匹配从1~5的任意一个数字

匹配之前的项1次或0次 colou?r匹配color或colour,但是不能匹配colouur
+
匹配之前的项1次或多次 Rollno-9+匹配Rollno-99,Rollno-9,但是不能匹配Rollno-
*
匹配之前的项n次 co*l匹配cl、col、coool等
() 创建一个用于匹配的子串 ma(tri)?匹配max或maxtrix
{n}
匹配之前的项n次 [0-9]{3}匹配任意一个三位数,[0-9]{3}可以扩展为[0-9][0-9][0-9]
{n,}
之前的项至少需要匹配n次 [0-9]{2,}匹配任意一个两位或更多位的数字
{n,m} 指定之前的项所必需匹配的最小次数和最大次数 [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字
|
交换--匹配|两边的任意一项 Oct (1st|2nd)匹配Oct 1st或Oct 2nd
\
转义符可以将上面介绍的特殊字符进行转义。 a\.b匹配a.b,但不能匹配ajb。通过在.之间加上前缀\,从而忽略了.的特殊意义





POSIX字符类

正则表达式 描述 示例
[:alnum:] 字母与数字字符 [[:alnum:]]+
[:alpha:] 字母字符(包括大写字母与小写字母) [[:alpha:]]{4}
[:blank:] 空格与制表符 [[:blank:]]*
[:digital:] 数字字符 [[:digital:]]?
[:lower:]
小写字母 [[:lower:]]{5,}
[:upper:]
大写字母 ([[:upper:]]+)?
[:punct:]
标点符号 [[:punct:]]
[:space:] 包括换行符、回车等在内的所有空白字符 [[:space:]]+


你可能感兴趣的:(正则表达式)