我试图在引号外找到参数(单ou Double)
$sql = "
INSERT INTO Notifify (to_email, msg, date_log, from_email, ip_from)
VALUES
(
:to_email,
'test teste nonono',
'2013-02-01 10:48:27',
'bar@foo',
:ip_from
)
";
$matches = array();
preg_match_all('/:[A-Za-z0-9_]*/', $sql, $matches);
Run Code Online (Sandbox Code Playgroud)
上面的代码将产生以下结果,
print_r($matches); // array(:to_email, :48, :27, :ip_from)
我只想要:
:to_email
:ip_from
Run Code Online (Sandbox Code Playgroud)
'/^\\s*:[A-Za-z0-9_]*/m'
Run Code Online (Sandbox Code Playgroud)
应该做到这一点,检查行首和空格,并确保 RegEx 查询设置为多行。
编辑
preg_match_all('/(?:^\\s*)(:[A-Za-z0-9_]+)/m', $sql, $matches);
print_r($matches[1]);
Run Code Online (Sandbox Code Playgroud)
这使用被动非捕获组 (?:),它将正确的结果放入索引 1 处的 matches 变量的子数组中,而无需空格填充。
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |