1.单词边界
在这个匹配中,我们匹配到两个cat,但很明显第二个不是需要的,如何解决这个问题,我们需要借助位置匹配。
这里我们在cat两边加上\b,它匹配的是单词边界。简单说,\b匹配的是字符之间的一个位置:一边是单词,能够被\w匹配的字母数字字符和下划线,另一边是能够被\W匹配的其他内容。
如果不想匹配单词边界,可以使用\B,可以使用它来查找前后都有多余空格的连字符,比如:
2.字符串边界
有些时候我们想匹配的内容必须位于文档开头,此时需要字符串边界元字符,它有两个:^代表字符串开头,$代表字符串结尾。
有效的XML文档必须以<?xml>标签开头,如何匹配如下文档的开头?
<wsdl:definitions targetNamespace=“http://tips.cf”
xmlns:impl=“http://tips.cf” xmlns:intf=“http://tips.cf”
xmlns:apachesoap=“http://xml.apache.org/xml-soap”
可以用<?xml.?>,如下:
但如果此内容不在开头部分,如下
它仍能匹配,而这个不是有效的XML文档。此时可以考虑使用字符串边界,如
此处,符号^匹配文档开头,\s匹配零个或多个空格,因为在XML文件中这是可以的。