6.1 边界
位置匹配用来解决在什么地方进行字符串匹配操作的问题。
使用边界限定符,也就是在正则表达式里用一些特殊的元字符来表明我们想要匹配操作在什么位置(或边界)发生。
6.2 单词边界
第一种边界(也是最常用的边界)是由限定符指定的单词边界。用来匹配一个单词的开始和结尾。
匹配的位置位于一个能够用来构成单词的字符(字母、数字和下划线,也就是与w相匹配的字符)和一个不能用来构成单词的字符(也就是与W相匹配的字符)之间。
例子:cat
用B表明不匹配一个单词边界。
例子:B-B
备注:有的正则表达式实现还支持另外两个元字符:
<只匹配单词的开头
> 只匹配单词的结尾
6.3 字符串边界
用来定义字符串边界的元字符有两个:
^用来定义字符串的开头
$用来定义字符串的结尾
例子:匹配一个<?xml version="1.0" ?>
^s*<?xml.*??>
6.4 分行匹配模式
有许多正则表达式都支持使用一些特殊的元字符去改变另外一些字符行为的做法。
分行匹配模式(multiline mode)(?m)使得正则表达式引擎把行分隔符当作一个字符串分隔符来对待。
在使用时,(?m)必须出现在整个模式的最前面。
例子:(?m)^s*//.*$