$key="`client` asc";
preg_match('
~(?J)
\s*
(?:`(?P<col>(?:[^`\\\\]|\\\\.|``)*)`|(?P<col>\S+))
(?:\s+(?P<dir>asc|desc))?
\s*
\z~Axi', $key, $m);
print_r($m);
col在这里测试时,此正则表达式会填充密钥
https://regex101.com/r/i00sEn/1
它在我的本地PHP 5.6机器或这个7.3解释器上不能正常工作。
http://sandbox.onlinephpfunctions.com/code/915a26b741c6d086f21129f60af2420c74cf9f89
如果我删除反引号,它可以在任何地方工作,但由于此代码的目的是解析 SQL ORDER BY 子句,因此我需要反引号。
为什么这样做?我怎样才能让它正确匹配反引号?
青春有我