正则学习备忘1—匹配单个字符

正则学习备忘1—匹配单个字符
一.匹配单个字符:

  1. "."可以匹配任意的单个字符,英文字母,数字,其还可以连续使用。如:".e.."匹配的字符串是e前面有任意一个字符,e后面有任意两个字符 如果想匹配元字符 "."则需要进行转义 "/."

 二.匹配字符词组:

 1.上面介绍的"."能匹配任意单个字符,其匹配非常广泛,可是有时我们想匹配的单个字符是在某个特定范围内的,这时正则表达式就提供了字符组来解决这个问题。"[dt]"中括号似乎特殊的标记,用以划定属于组内的字符的界限,它表示要匹配d或者匹配t。

 2.在字符组中使用区间字符:例如想匹配 city0.jpg,city1.jpg,....city9.jpg这些文件名,这时利用上面的字符组可以这样写city[0123456789].jpg。如果city后面跟的是字符a到z那这样写是很麻烦的,于是正则就引入了字符区间,其语法是"起始字符-结束字符",对于上面的阿拉伯数字匹配可以将其写为city[0-9]\.jpg。起始字符和结束字符依据的是他们ASCII值的大小,也就是说[起始-结束]将会匹配ASCII码值位于起始字符和结束字符的ASCII之间的所有字符(包含起始字符和结束字符),如果起始字符大于结束字符将会导致匹配出错,匹配失败。

 3.有时候我们需要匹配除了某些字符外的其他一些字符,这时就可以使用反义字符组,其语法是:"[^字符集合]"  ,想匹配除了city1.jpg,city2.jpg,city3.jpg之外的文件名,这时就可以使用city[^1-3]\.jpg。

 三.匹配特殊字符:

 1.匹配元字符,元字符就是在正则表达式中具有特殊含义的字符,在上面介绍过当需要匹配字符文本"."本身的时候就需要对其进行转义:"\.",同时也可以看出"\"本身也是一个元字符,如果想匹配"\"本身的时候,也需要进行转义:"\\",同理字符词组中的"[]"也是这样的。

 2.匹配空字符 :这个待定

 3.匹配特定字符类型。在上面讲到的匹配元字符和匹配空字符中,我们可以发现类似"."本来是元字符,在加上转义字符后"\."才代表一个普通字符,而对于"r","n" 其原本是一个普通字符,但是再加上了转义字符后"\r","\n"变成了元字符。而接下来要学习的就是后面的这种情况,也就是某些字符加上转义字符之后成为具备某些一意义的元字符。

    (1)\d :匹配数字,相当于[0-9] ; \D:匹配非数字,相当于[^0-9]
     (2) 匹配字母,数字,下划线。这类字符集是非常常见的,比如在程序的变量命名中,在文件的命名中,那就是所有的大小写字母,数字和下划线,在用字符词组的正则表示方法就是[0-9a-zA-Z_]。可以使用"\w"来匹配这一类型的字符集,使用"\W"来匹配不是这一类型的字符集。
     (3)匹配空字符,"\s"匹配所有的单个空字符,"\S"匹配所有的单个非空字符.  其实"\S"和"."是一致的。       


 注:上面讲的这些都指的是匹配单个的非空字符。还有一点"-"只是在匹配字符词组时才是元字符,也就是在"[]"括号里面才是元字符。而在"[]"外面是特定的字符。而"."元字符在字符词组的"[]"中不是元字符,而是普通字符。
发布了20 篇原创文章 · 获赞 18 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43457125/article/details/90346405