正则表达式 元字符

1、正则表达式不包含元字符,就是纯文本检索
2、行的开头与结尾 ^(脱字符)$(美元符),注意:^和$不是匹配具体的文本,而是匹配一个位置
3、字符集合,如gr[ae]y, 首先匹配g, 下一个是r, 下一个是a或者e,最后一个是y, 这里的a和e表示一个字符集合,匹配其中的任意一个。如果想匹配小写字母,使用[a-z],这里的-连字符,是字符集合中的元字符,表示一个范围。
在字符集合中只有连字符,脱字符是元字符,并且连字符不在开头,表示一个范围。在字符集合外,连字符只是一个普通字符。
4、排除字符集合,比如[^u], 表示匹配一个字符,这个字符不是u,也就是反向选择。特别注意:q[^u] 不能匹配Iraq,思考为什么?
q[^u],匹配一个字符,这个字符不是u,首先得条件是有一个字符,二Iraq后面没有字符
5、用点号匹配任意字符,考虑下面的情况,查找文档中的日期 2015-03-17,不确定日期的分隔符,也就是说可能是2015/03/17,也有可能是2015:03:17。因此正则表达式有两种选择:2015[-/:]03[-/:]17 或者2015.03.17 。使用前者,匹配更加准确,但是会漏掉2015|03|17。使用后者,匹配的情况更多,但是会匹配不准确,比如2015103117。因此,写正则表达式,就是在准确程度和匹配范围求得平衡。
6、区分空字符,空格字符,空白字符(包括空格字符,制表符,换行符)
7、多选结构,对于字符集合gr[ae]y,可以使用gr(a|e)y,当然也可以使用 (gray|grey)。注意字符集合和多选结构的区别,字符集合只能匹配一个字符,多选结构可以是一个任意的表达式,但是多选结构没有字符集合的排除功能。
8、可选项? 出现一次,或者没有出现
9、其他量词 + 出现一次以上,*出现0次或者多次,a+等介于aa*
10、括号,括号的三中用处:限制多选项的范围;将多个字符合成一个单位,接受量词的限制;反向引用。
      比如,找出重复的abc abc ,(abc) \1【注意,(abc)与\1之间有个空格】,找出重复的abc。
      找出重复的abcabc ,(abc)\1【注意,(abc)与\1之间没有空格】,找出重复的abc。
    ([a-z]{3})([0-9]) \1\2,找出重复的([a-z]{3})([0-9])
11、转义字符,在字符集合中开头的脱字符(排除),非开头连线符(表示范围)是元字符,其他都不是元字符。在字符集合外,.*+()[] 需要进行转义
posted on 2015-03-21 21:10  Andy Niu  阅读(1453)  评论(0编辑  收藏  举报