PHP正则表达式与变量的使用技巧
1. 正则表达式子模式的运用
1.1 子模式解决分支结束问题
在正则表达式中,当使用分支( |
)来定义多个内容选项时,解析器可能难以确定最后一个选项的结束位置。解决方法是使用子模式,通过括号将模式包围起来。
例如,要查找多个短语“new car”、“new house”或单独的“new”,可以创建如下模式:
/new|new car|new house/
使用子模式可以更高效地编写这个模式。由于“new”在所有三个分支的开头都被使用,因此可以将其提取到子分支之外:
/new( car| house|)/
注意,最后一个竖线和右括号之间没有内容,这允许子模式中有一个空分支。但将空字符串放在子模式的开头是不起作用的。
1.2 使用 preg_match()
函数查找匹配项
以下示例展示了如何使用正则表达式扫描文本并查找“new”、“new car”和“new house”的所有实例:
<?php
// 9_7.php
$txt = "I got a new car and I'm now looking for a new house";
if (preg_match("/new(( car| house)|)/", $txt, $mat