Regular expression preg_quote symbols are not detected(未检测到正则表达式PRIG_QUOTE符号)
本文介绍了未检测到正则表达式PRIG_QUOTE符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在数据库里有一本脏话词典,下面的作品很棒
preg_match_all("/".$f."(?:ing|er|es|s)?/si",$t,$m,PREG_SET_ORDER);
$t
是输入文本,简单地说,$f = preg_quote("punk")
;"punk"
来自数据库字典,所以在循环中的这一点,表达式如下
preg_match_all("/punk(?:ing|er|es|s)?/si",$t,$m,PREG_SET_ORDER);
preg_quote
替换符号,例如。#
与\#
一起使用,以便对表达式进行转义,但在字典检查时,例如。"F@CK"
或"A$$"
在使用上述表达式的输入字符串中未检测到这些符号,我在字典中同时有a$$
和f@ck
,但它们都不起作用。如果删除单词上的preg_quote()
,则正则表达式无效,因为这些符号没有转义。
关于如何检测"a$$"
??
编辑:
所以我猜没有按预期工作的表达式应该是。
preg_match_all("/f@ck(?:ing|er|es|s)?/si",$t,$m,PREG_SET_ORDER);
应在$t
更新:
这是我的用法,简单地说,如果$m
中有匹配项,替换为"****"
,这整个挡路就是在词典中每个词的循环中,$f
是词典里的词,$t
是输入
$f = preg_quote($f);
preg_match_all("/$f(?:ing|er|es|s)?/si",$t,$m,PREG_SET_ORDER);
if (count($m) > 0) {
$t = preg_replace("/($f(?:ing|er|es|s)?)/si","*****",$t);
}
更新:
看,var_dump
:
preg_quote($f) = string(5) "a$$"
$t = string(18) "You're such an a$$"
expression = string(29) "/a$$(?:ing|er|es|s)?/si"
更新:
只有当单词以符号结尾时,才会发生这种情况。我测试了"a$$hole"
,它很好,但是"a$$"
不起作用。
另一个更新:
试试这个简化版,$words
是临时词典
$words = array("a$$","asshole","a$$hole","f@ck","f#ck","f*ck");
$text = "Input whatever you feel like here eg. a$$";
foreach ($words as $f) {
$f = preg_quote($f,"/");
$text = preg_replace("/".$f."(?:ing|er|es|s)?/si",
str_repeat("*",strlen($f)),
$t);
}
我预计会因此看到"Input whatever you feel like here eg. ***"
。
推荐答案
无法执行
很抱歉,这个"问题"确实不可能解决。请考虑以下几点:
这篇关于未检测到正则表达式PRIG_QUOTE符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:未检测到正则表达式PRIG_QUOTE符号
基础教程推荐
猜你喜欢
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在多维数组中查找最大值 2021-01-01