有时候我们希望不光能匹配我们想要的字符串,还希望可以对位置进行匹配。比如希望找到单个字母a,而不希望找到相关以a为开头的单词,如abundant。此时就需要使用位置匹配,下面我们来介绍最简单的位置匹配符
- \b some word\b(单词边界)
如使用\ba\b正则表达式,此时,仅匹配a单词字母,而不会匹配包含a的单词,此种用法还包含一些衍生的使用,如查找包含
以ab开头的单词,就可以使用\b ab,那么同理,想查找以ed为结尾的单词,就可以使用 ed\b来查找
- ^ $
前面已经介绍了\b的使用,如果我想要匹配字符串的边界就需要使用上面个两个符号了。其实要记起来这个很容易,就是把^想象
成为箭头,而$ 想象成为箭尾。正如介绍的这样,^匹配字符串的开始,而$匹配字符串的结尾。这里有一个经典的例子,如何检查一个xml文档为标准格式。这里一般的xml标准写法是
<?xml version="1.0" encoding ="utf-8"?>
这里的要求就是,开头不能是空格或者任意字符,所以,一般而言,如果需要匹配上面的例子,就需要使用前面介绍的开始和结束 符号了。这里按照要求,我们可以得出以下正则表达式
^\S*<\?xml.*\?>$