php - PHP preg_match 函数未按预期工作
问题描述
我想从字符串中找到模式的索引,并找到所有 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";
}
谢谢。
解决方案
您的代码有几个问题。
如果您对模式使用单引号并希望匹配文字反斜杠,则至少需要使用
\\\
甚至\\\\
生成转义的反斜杠\\
。如果不确定,只需呼应您的模式。而不是使用PHP 中不可用的全局标志 使用. 如果匹配,则返回匹配数。您可以通过...检查匹配条件
g
preg_match_all
preg_match_all(
) > 0
不确定
^
在[\\^]
. 如果您不需要它,请放下它。进一步[0-9]
可以简化为\d
。如果不应该匹配类似的东西,我也会在之后添加一个单词边界。\b
\d{4}
\u12345
$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";
}
推荐阅读
- python - 在具有一定距离的外圆内生成随机点
- python-3.x - 如何使用 gpiozero 按钮方法检查某个按钮何时被按下
- linux - 从 proc/sys/kernel/ 读取数据
- google-sheets - Google 表格 - 创建过去 90 天平均收盘价的折线图?
- angular - 按钮路由器链接不起作用
- javascript - 我使用了一个表达式来减少 javascript 中的 for 循环,但它不起作用
- python - 使用底图、Python 散点图坐标数据,
- typescript - 打字稿:将通用返回为字符串
- mysql - mysql 服务在 ubuntu 18.04 中自动重启
- sql - (SQL 合并)我在表中得到重复项