正则表达式简单的说就是字符串的匹配规则,也可以说就是描述一类字符串的规则性描述.例如一句话中以 xyz结尾的句子可以表示为 'xyz$' .
要匹配字符串自然就是要说明在什么位置,出现什么字符,出现了几次.
下面我们介绍常用的正则表达式规则:
元字符:
明确的字符: 字母,数字。 例如:abc a2bc 2345
. : 匹配除换行符外的任意字符。
\w : 匹配任意字母,数字,下划线或汉字。
\s : 匹配任意的空白字符。如空格,制表符,换行符。
\S : 匹配任意的显示(非空白)字符。
\d : 匹配数字字符。(grep中不支持)
[a-z] : 匹配字符范围内的字符。
[0-9] : 匹配数字范围内的字符。
[指定字符] : 匹配任意在方括号内的字符。如[ac] 代表字符a 和 b.
\N : 转义字符,对于正则表达式所有用到的特殊字符需要做转义,才能像普通字符一样匹配使用。如$ 须写成 \$
匹配次数:
? :符号前的字符匹配0次或1次。
+ :符号前的字符匹配1次或多次。
* :符号前的字符匹配0次或多次。
{n} :符号前的字符匹配 n 次。
{n,m} :符号前的字符匹配至少n,最多m次。
{n,} :符号前的字符匹配至少n次。
匹配位置:
^ :匹配字符串开始的位置。
$ :匹配字符串结尾的位置。
\b :匹配单词的结尾或者开头。
\B :匹配不是单词的结尾或者开头。
使用方法:
1)对于上诉三种符号,可以连续使用,定义多个约束条件。如:
abc+ 匹配ab字符并且后面至少一个c 符合规则的字符可以是:abc abcc abcc abccc
^abc 匹配以abc开头的字符串。符合规则的字符可以是:abcsd abc3e abcvd abcrgh
a[a-z]{2}z 匹配2次a-z之间的字符。 符合规则的字符可以是:aefz aefz aghz argz
abc.*xyz 匹配含有abc以及xyz,中间是任意字符的字符串。符合规则的字符可以是:abc2xy abcgzyz abcoxyz abchxyz
\ba 匹配以a开头的单词。 符合规则的字符可以是:a an apple age
2)符号之间的组合。如:
(abc+){2} 做2次abc+的匹配。
^(abc+) 以(abc+)字符串开头的字符串。
阅读(1170) | 评论(0) | 转发(0) |