正则表达式是基于样式匹配的文本处理技术的关键所在。想要在编写文本处理工具方面驾轻就熟,你就必须对正则表达式有一个基本的理解。正则表达式是一种用于文本匹配的形式小巧、具有高哦啊嘟针对性的编程语言。只依靠通配符技术,能够匹配的文本范围相当有限。本文将对基础的正则表达式进行详解。
正则表达式@H_301_6@ | 描述@H_301_6@ | 实例 @H_301_6@ | ||
^@H_301_6@ | 行起始标记@H_301_6@ | ^tux匹配以tux起始的行@H_301_6@ | ||
$@H_301_6@ | 行尾标记@H_301_6@ | tux$匹配以tux结尾的行@H_301_6@ | ||
. @H_301_6@ | 匹配任意一个字符 @H_301_6@ | Hack.匹配Hackl和Hacki,但是不能匹配Hackl2和Hackil,它只能匹配单个字符 @H_301_6@ | ||
[]@H_301_6@ | 匹配包含在[字符]之中的任意一个字符@H_301_6@ | coo[kl]匹配cook或cool@H_301_6@ | ||
[^] @H_301_6@ | 匹配除[^字符]之外的任意一个字符@H_301_6@ | 9[^01]匹配92、93,但是不匹配91或90@H_301_6@ | ||
[-]@H_301_6@ | 匹配[]中指定范围内的任意一个字符@H_301_6@ | [1-5]匹配从1~5的任意一个数字@H_301_6@ | ||
? @H_301_6@ | 匹配之前的项1次或0次@H_301_6@ | colou?r匹配color或colour,但是不能匹配colouur@H_301_6@ | ||
+ @H_301_6@ | 匹配之前的项1次或多次@H_301_6@ | Rollno-9+匹配Rollno-99,Rollno-9,但是不能匹配Rollno-@H_301_6@ | ||
* @H_301_6@ | 匹配之前的项n次@H_301_6@ | co*l匹配cl、col、coool等@H_301_6@ | ||
()@H_301_6@ | 创建一个用于匹配的子串@H_301_6@ | ma(tri)?匹配max或maxtrix @H_301_6@ | ||
{n} @H_301_6@ | 匹配之前的项n次@H_301_6@ | [0-9]{3}匹配任意一个三位数,[0-9]{3}可以扩展为[0-9][0-9][0-9] @H_301_6@ | ||
{n,} @H_301_6@ | 之前的项至少需要匹配n次@H_301_6@ | [0-9]{2,}匹配任意一个两位或更多位的数字@H_301_6@ | ||
{n,m}@H_301_6@ | 指定之前的项所必需匹配的最小次数和最大次数@H_301_6@ | [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字@H_301_6@ | ||
| @H_301_6@ | 交换--匹配|两边的任意一项@H_301_6@ | Oct (1st|2nd)匹配Oct 1st或Oct 2nd @H_301_6@ | ||
\ @H_301_6@ | 转义符可以将上面介绍的特殊字符进行转义。@H_301_6@ | a\.b匹配a.b,但不能匹配ajb。通过在.之间加上前缀\,从而忽略了.的特殊意义 @H_301_6@ | ||
@H_301_6@ | @H_301_6@ | @H_301_6@ | @H_301_6@ | @H_301_6@ |
POSIX字符类
正则表达式@H_301_6@ | 描述@H_301_6@ | 示例@H_301_6@ | ||
[:alnum:]@H_301_6@ | 字母与数字字符@H_301_6@ | [[:alnum:]]+@H_301_6@ | ||
[:alpha:]@H_301_6@ | 字母字符(包括大写字母与小写字母)@H_301_6@ | [[:alpha:]]{4}@H_301_6@ | ||
[:blank:]@H_301_6@ | 空格与制表符@H_301_6@ | [[:blank:]]* @H_301_6@ | ||
[:digital:]@H_301_6@ | 数字字符@H_301_6@ | [[:digital:]]?@H_301_6@ | ||
[:lower:] @H_301_6@ | 小写字母@H_301_6@ | [[:lower:]]{5,}@H_301_6@ | ||
[:upper:] @H_301_6@ | 大写字母@H_301_6@ | ([[:upper:]]+)?@H_301_6@ | ||
[:punct:] @H_301_6@ | 标点符号@H_301_6@ | [[:punct:]] @H_301_6@ | ||
[:space:]@H_301_6@ | 包括换行符、回车等在内的所有空白字符@H_301_6@ | [[:space:]]+@H_301_6@ |