使用POSIX正则表达式,定位符是最基本也是最重要的,使用正则表达式,就必须知道"^"和"$"这两个定位符。
定位符的作用是用于描述字符串或单词的边界(Border),"^"和"$"分别表示字符串的开始与结束,来通过例子说明这两个定位符:
1.^long
这个模式包含了"^"这个定位符,表示与该模式匹配的字符串应该是以 long 开头的。例如这个模式可以与"long long ago"相匹配,但是不能与"once long long ago" 匹配,这就是"^"表示字符串的开始。
2.bark$
这个模式包含了"$"这个定位符,也就意味着与该模式匹配的字符串应该是以bark作为结尾的。例如这个模式可以与"the dog likes to bark"匹配,但是不能与"the dog likes to bark loudly"匹配,说明"$"表示字符串的结尾。
3. ^bark$
看看前面的两个例子就应该知道这个模式只可以匹配"bark" ,这个模式表示“以bark”开头,并以"bark"结尾,这可以称作是POSIX精确匹配,意思就是字符串与模式一样。
4.long
这个模式不包含任何定位符,就意味着该模式可以匹配所有在字符串中出现过"long"的字符串。例如它可以匹配"Once long long ago, the dog liked to bark." 。
在这个模式中long就是字面的字符,它表示字母本身,换成数字也是如此。如果遇到像换行之类的复杂字符,需要使用转义序列。
此外,"^"一旦加入了方括号就表示取非的匹配,例如[^bark]与 "barking dog"虽然是相匹配的,但是程序最终会返回Flase的布尔值。