我遇到了一个正则表达式的麻烦,我似乎无法弄清楚这种行为的原因。
$RGX = "~(\w+)\s*([=:<>])\s*(.*?(?=&&|\+|$))~";
$STR = "date<something";
preg_match_all($RGX, $STR, $SearchParameters, PREG_SET_ORDER);
print_r($SearchParameters);
使用正则表达式时,如果输入字符串包含“小于”字符,则会出现仅的问题,如上例所示。
Array
(
[0] => Array
(
[0] => date date
[2] => <
[3] => something
)
)
答案 0 :(得分:3)
我发现了它!
问题是我在浏览器中查看了结果,当然浏览器解释了“&lt;”字符作为新HTML对象的开头。血淋淋的地狱。
对参数执行foreach
并使用htmlentities()
显示正则表达式实际上正常工作。