PHP preg_match函数未按预期工作
我想从字符串中查找模式的索引,并查找所有Unicode字符,如“\u2026”、“\u2021”、“\u2011”等 下面是我当前使用的代码片段。但这导致了另一种情况PHP preg_match函数未按预期工作,php,regex,Php,Regex,我想从字符串中查找模式的索引,并查找所有Unicode字符,如“\u2026”、“\u2021”、“\u2011”等 下面是我当前使用的代码片段。但这导致了另一种情况 if(preg_match('/[\\^]u[0-9]{4}/gi',$data['title'],$matches,PREG_OFFSET_CAPTURE)){ print_r($matches); } else{ echo "Not Found"; } 谢谢。您的代码有几个问题 如果您正在为模式使用单引号
if(preg_match('/[\\^]u[0-9]{4}/gi',$data['title'],$matches,PREG_OFFSET_CAPTURE)){
print_r($matches);
}
else{
echo "Not Found";
}
谢谢。您的代码有几个问题
\\\\\
甚至\\\\\\\
来生成转义反斜杠\\
。如果不确定,只需重复你的模式即可g
,这在PHP使用中不可用。如果匹配,则返回匹配数。您可以通过preg\u match\u all(
…)>0
[\\^]
中的^
不确定。如果你不需要,放下它。进一步的[0-9]
可以减少到\d
。如果像\u12345
这样的内容不匹配,我也会在\d{4}
之后添加一个您希望哪种输出?显示文本输入。请注意,
g
标志不受支持,您需要使用preg\u match\u all
谢谢,@WiktorStribiżew建议preg\u match\u all,使用该模式和修改后的模式即可!!为什么要投否决票?
$pattern = '/\\\u\d{4}\b/i';
# echo $pattern;
if(preg_match_all($pattern, $data['title'], $matches, PREG_OFFSET_CAPTURE) > 0){
print_r($matches[0]);
} else{
echo "Not Found";
}