在PHP正则表达式中,边界匹配是精确定位字符位置的重要技术。合理使用边界匹配符可以大幅提升正则表达式的准确性和效率。
边界匹配是指匹配某些特定的位置而非实际字符,这些位置包括:
^ - 匹配字符串的开始位置
preg_match('/^abc/', 'abcdef'); // 匹配成功
$ - 匹配字符串的结束位置
preg_match('/def$/', 'abcdef'); // 匹配成功
\b - 匹配单词边界(字母数字与非字母数字之间的位置)
preg_match('/\bword\b/', 'this is a word'); // 匹配成功
\B - 匹配非单词边界
preg_match('/\Bword\B/', 'swordfish'); // 匹配成功
(?=...) - 正向预查(匹配后面跟着特定模式的位置)
preg_match('/\d(?=px)/', '100px'); // 匹配100
(?!...) - 负向预查(匹配后面不跟着特定模式的位置)
preg_match('/\d(?!px)/', '100em'); // 匹配100
// 匹配独立的"php"单词
preg_match('/\bphp\b/', 'php is great'); // 匹配成功
preg_match('/\bphp\b/', 'phpunit'); // 匹配失败
// 验证以http://或https://开头的URL
preg_match('/^https?:\/\//', 'https://example.com');
// 提取每行开头的数字
preg_match_all('/^\d+/m', "100 apples\n200 oranges", $matches);
/m),^和$会匹配每行的开头和结尾\b对非ASCII字符可能表现不同掌握PHP正则表达式中的边界匹配技巧,可以让你编写出更加精确高效的正则表达式,解决各种复杂的字符串处理问题。