[正则表达式]-基础语法一 元字符之定位符

时间:2021-03-31 22:46:51

      “正则表达式”应用于字符串操纵,使用具有特定含义的元字符或普通字符进行匹配。

      其中元字符又分为几类,分别为:特殊字符限定符以及定位符

      这里我们通过对元字符的逐个讲解,来对正则表达式进行学习。附:所有正则表达式都为加粗蓝体

      在线练习工具:http://tool.oschina.net/regex/?optionGlobl=global#

      一、元字符之定位符^

      匹配字符串的开始位置,准确来讲应该是一行的开始位置。如果设置了Mutiline多行属性,则也对\n之后和\r之后的位置进行匹配。

      譬如:正则表达式^ab

      可以匹配abc之中的ab,但不能匹配cabc中的ab,原因在于cabc之中的ab之前有c而并非是字符串开始位置。

[正则表达式]-基础语法一 元字符之定位符

      图中之匹配到了箭头所指的字符串,而第二个并未将之匹配,原因在于第一个abc与第二个abc之间有不可见字符空格(ASCII码:32(Dec))。空格属于广义的字符,所以第一行的字符串其实是“abc abc”。同时,若设置了Mutiline属性,则第二行中的ab字符串将被识别匹配。

      二、元字符之定位符$

     匹配字符串的末尾结束位置,准确来讲应该是一行的结束位置。如果设置了Mutiline多行属性,则也对\n之前和\r之前的位置进行匹配。

      譬如:正则表达式cd$

      可以匹配acd之中的cd,但不能匹配acda之中的cd,原因在于acda之中的cd之后有多余字符a,并不是字符串结束。同时关注Mutiline属性设置与否的不同。

      三、元字符之定位符\b

      匹配单词字符与非单词字符之间的单词边界。注意:这里的单词字符包括:数字、字母、下划线。其实就是“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_”。一定要注意不只是空格和字母之间的叫做单词边界,甚至-a这个字符串之中就有两个单词边界。1、-与a之间的单词边界,2、a与行结尾之间也是单词边界。

[正则表达式]-基础语法一 元字符之定位符

      这里要强调,单词边界是单词字符与非单词字符之间的产物。特别的单词字符可以使用\w来表示,非单词字符可以使用\W来表示

      、元字符之定位符\B

     匹配非单词边界,与\b在集合上互为补集。一般应用不多。