正则表达式是基于样式匹配的文本处理技术的关键所在。想要在编写文本处理工具方面驾轻就熟,你就必须对正则表达式有一个基本的理解。正则表达式是一种用于文本匹配的形式小巧、具有高哦啊嘟针对性的编程语言。只依靠通配符技术,能够匹配的文本范围相当有限。本文将对基础的正则表达式进行详解。
正则表达式 |
描述 |
实例
|
^ |
行起始标记 |
^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:]]+ |
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|