今天在学习linux系统命令grep时,刚好看到正则表达式的用法。在此对正则表达式的使用做个简单的总结。
一、正则表达式构成
由15个元字符构成,它们是$、^、*、()、-、+、{}、[]、|、\、.、?。
现在分别说明下每个字符的含义。
$:行尾标记,如:$csdn,以csdn结尾
^:行首标记,如:^csdn,以csdn开头
*:匹配之前的项0次或者多次,如csdny*,csdn、csdny、csdnyy等。---------表示次数
():创建一个匹配的子串,如:csdn(csdn)?,csdn、csdncsdn。
[-]:匹配一个指定的范围,如:[1-5],表示1到5中的任意一个字符-------表示范围
+:匹配之前的项一次或者多次,如:csdn+a,表示csdna、csdnna等。---------表示次数
{}:之前的项指定次数,如[0-9]{2},表示[0-9][0-9]两位数。---------表示次数
{n,}之前的项至少n次,如[0-9]{2,}表示至少两位数---------表示次数
{n,m}之前的项n到m次,如[0-9]{2,3},匹配两位数和三位数---------表示次数
[]:匹配包含在[]中的任意一个字符,如ab[cd],表示ab[c]或者ab[d]-------表示范围
[^]:匹配不包含在[]中的任意一个字符,如1[^01],表示12、13等-------表示范围
|:匹配两边的任意一项,如dec(12|13),表示dec12或者dec13-------表示选择
\:转义字符,将特殊字符转义,如a\+b,表示a+b
.:表示任意一个字符,如a.b,表示aab,abb等
?:匹配之前的项0次或者1次,如ab?,表示a、ab。---------表示次数