Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式-从字符串中删除无效字符_Php_Regex_Preg Replace - Fatal编程技术网

PHP正则表达式-从字符串中删除无效字符

PHP正则表达式-从字符串中删除无效字符,php,regex,preg-replace,Php,Regex,Preg Replace,我知道有很多正则表达式的问题,但我对它了解不够,也找不到足够好的答案来解释它,从而得出我试图得到的解决方案 在PHP中,使用 preg_replace($pattern,"",$data); 我希望允许所有字母数字字符以及减号、句号和下划线字符。我需要什么样的$pattern $pattern = "/[^\w.-]/"; 这正是您描述的需求的否定字符类 这正是您描述的需求的否定字符类。也许可以尝试: $cleaner_input = trim(strip_tags($text)); 也

我知道有很多正则表达式的问题,但我对它了解不够,也找不到足够好的答案来解释它,从而得出我试图得到的解决方案

在PHP中,使用

preg_replace($pattern,"",$data); 
我希望允许所有字母数字字符以及减号、句号和下划线字符。我需要什么样的$pattern

$pattern = "/[^\w.-]/";
这正是您描述的需求的否定字符类


这正是您描述的需求的否定字符类。

也许可以尝试:

$cleaner_input = trim(strip_tags($text));

也许可以尝试一下:

$cleaner_input = trim(strip_tags($text));

试试这个,我知道这不是正则表达式


$answer=iconv(“UTF-8”、“ISO-8859-1//IGNORE”、$data)

试试这个,我知道这不是正则表达式



$answer=iconv(“UTF-8”、“ISO-8859-1//IGNORE”、$data)

@恶魔之地-斯利兰卡很有趣。。你有证据吗?它会把每个非单词字符1替换成1,而不是批量替换..我没有任何证据,但这是正则表达式引擎将取代的方式..@the_Land_Devils_SriLanka嗯,我也没有任何证据,但我认为PHP会编译表达式,以便在匹配中对替换进行优化,量词无关紧要,但我同意在这里添加量词会使替换更快。@the_Land_Of_Devils_SriLanka很有趣。。你有证据吗?它会把每个非单词字符1替换成1,而不是批量替换..我没有任何证据,但这是正则表达式引擎将取代的方式..@the_Land_Devils_SriLanka嗯,我也没有任何证据,但我认为PHP会编译表达式,以便在匹配中优化替换,量词无关紧要,但我同意在这里添加量词会使替换更快。@SulemanC您使用的模式与我基本相同,但是你有一个
+
在里面,它不属于问这个问题的a-1?说真的,我没有投反对票,但出于没有表现出任何研究努力的原因,我很想投反对票。这个问题本质上是“我需要的正则表达式是什么?”,最好是“我尝试了这个正则表达式,但它与这些输入测试用例不匹配”。我花了1-2个小时研究,没有发现任何有用的东西。例如,即使在这里,我也非常感谢您的帮助,这些信息给出了答案,但没有详细的解释。因此,对于只懂一点正则表达式的人来说,没有办法从中扩展。我最终在谷歌上搜索了“regex否定字符类”,最终找到了一个像样的解释。但如果没有谷歌的字符串,我就不知道它是如何工作的。大多数正则表达式的答案都是这样的,答案是肯定的,但没有解释。随着越来越多的答案出现,谷歌变得越来越难:(与其在谷歌上搜索你的确切情况,不如阅读php.net@SulemanC上的PCRE文档,你使用的模式基本上与我相同,但是你有一个
+
,问这个问题不属于a-1?说真的。我没有投反对票,但基于showin,我很想投反对票。)没有研究工作。这个问题本质上是“我需要的正则表达式是什么?”,最好是“我尝试了这个正则表达式,但它与这些输入测试用例不匹配”。我花了1-2个小时进行研究,没有发现任何有用的东西。例如,即使在这里,尽管我非常感谢您的帮助,但信息给出了答案,但没有详细的解释。因此,对于只懂一点正则表达式的人来说,无法从中扩展。我最终在谷歌上搜索了“正则表达式否定字符类”这最终让我得到了一个合理的解释。但如果不是谷歌的字符串,我就不知道这是怎么回事了。大多数正则表达式的答案都是这样的,答案是肯定的,但没有解释。随着越来越多的答案出现,谷歌变得越来越难:(与其在google/上搜索您的具体情况,不如阅读php.net上的PCRE文档