Php 删除带有preg_replace()的引号

Php 删除带有preg_replace()的引号,php,regex,Php,Regex,当我尝试从中删除引号时: “ABC”->ABC和“ABC”->ABC 我得到以下结果: "ABC" 这是我的代码: $company=filter_var( $_POST['company'],FILTER_SANITIZE_STRING); if ((!empty($company)) && (preg_match('/[a-z0-9\s\"\'\&]/i',$company)) && (strlen($

当我尝试从中删除引号时:
“ABC”->ABC
“ABC”->ABC
我得到以下结果:

"ABC"
这是我的代码:

$company=filter_var( $_POST['company'],FILTER_SANITIZE_STRING);
if ((!empty($company)) && (preg_match('/[a-z0-9\s\"\'\&]/i',$company))
   && (strlen($company) <= 30)){
    $company=preg_replace('/[\'\"]/','', $company);
    }
$company=filter\u var($\u POST['company'],filter\u SANITIZE\u STRING);
如果((!empty($company))&(预匹配('/[a-z0-9\s\'\'\\\\\&]/i',$company))

&&(斯特伦($company)您正在使用
FILTER\u SANITIZE\u STRING
进行过滤,该字符串将
编码为
&&34;
编码为
&&39;

Strip标记和HTML编码双引号和单引号,可选地对特殊字符进行Strip或编码。可以通过设置筛选标志\u否\u编码\u引号来禁用编码引号

因此,如果您确实需要该过滤器,则不要对引号进行编码:

$company = filter_var($_POST['company'],
                      FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
对于python:

重新导入
word='hello'单引号\'和'double quote';
word=re.sub(r“(“|\”),“”,word)
此正则表达式匹配一个单引号或一个双引号,并用空字符串替换它

根据自己的代码进行修改并使用。祝你好运

有关正则表达式替换运算符的更多信息,请参见链接:

编辑:

对于php:

$word='hello'sigle quote\'和“double quote';
$word=preg\u replace(“/”(“\'”)/”,“,”$word);

在您的
preg\u replace
中,您不仅可以删除引号(
'
),还可以删除实体(
&&39;
&&34;

$company=“remove”或';和\“或";”;
echo$company.“
”;//打印:删除“或”和“或” $company=preg#U replace(“/[&;39;&;34;]*/”,“$company”); echo$company.“
”;//打印:删除或
如何得到结果?经过测试的
var#u dump()
转储正确的值。看起来您有实体,而不是引号。也许
(";| 124\'|“&| 39;)
但这只是一个开始,为什么需要删除引号,希望不是SQL修复尝试对不起,我的朋友,我编辑了我的答案))