gpt4 book ai didi

php - 从 PHP 字符串中去除不是 a-zA-Z0-9、_ 和 - 的字符

转载 作者:行者123 更新时间:2023-12-04 15:32:12 25 4
gpt4 key购买 nike

我想停止所有不匹配此正则表达式模式的字符:[a-zA-Z0-9_-]

通常我会这样做:

preg_replace("[a-zA-Z0-9_-]", "", $var);

但显然这与我想要的效果相反。正则表达式中没有 NOT 吗?我怎样才能让它去掉任何与模式不匹配的字符?

谢谢。

最佳答案

这个:

preg_replace("[a-zA-Z0-9_-]", "", $var);

甚至不会替换那些字符,除非输入字符串正是模式。通过使用 [] 作为分隔符,它们的效果与它们在表达式本身中的效果不同。您可以更改分隔符(例如:/),或在模式中添加更多括号:

preg_replace("/[a-zA-Z0-9_-]/", "", $var);    // this works
preg_replace("[[a-zA-Z0-9_-]]", "", $var); // this too

现在,要否定 [] 中的模式,您可以在开头使用 ^:

preg_replace("/[^a-zA-Z0-9_-]/", "", $var);

您还可以使用不敏感修饰符 i 来匹配小写字母 (a-z) 和大写字母 (A-Z):

preg_replace("/[^a-z0-9_-]/i", "", $var);   // same as above

关于php - 从 PHP 字符串中去除不是 a-zA-Z0-9、_ 和 - 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com