$db = new PDO($dsn, $db_id, $dbpw);
$db= new PDO($dsn, $db_id, $dbpw);
我想准确获取变量名称' $ db'。
应排除以$ db开头的其他变量名。
我写了以下正则表达式:
/(\$db)[^_a-zA-Z0-9]/g
所以' $ db_id'和' $ dbpw'被排除在我的意图之外。
但是,在$ db的右边,一个字符(空格,=等)匹配“更多”'像这样:' $ db',' $ db ='
这不是我的意图。我怎样才能完全匹配' $ db'在这种情况下?
答案 0 :(得分:1)
您可以使用word boundary (\b
):
/(\$db)\b/
根据Regex Tutorial - \b
Word Boundaries:
有三种不同的职位符合词边界:
- 在字符串中的第一个字符之前,如果第一个字符是a 字符。
- 字符串中的最后一个字符后,如果是最后一个字符 字符是一个字符。
- 字符串中的两个字符之间, 其中一个是单词字符而另一个不是单词字符。
简单地说:\ b允许你只执行"整个单词"搜索使用 \ bword \ b形式的正则表达式。一个"字符"是一个 可用于形成单词的字符。所有不是的字符 "字符"是"非单词字符"。