php - 正则表达式 - preg_replace 字符串

标签 php regex preg-replace

我想将字符串的非字母数字字符替换为空格。

我用过 $title= preg_replace("/[^a-zA-Z0-9\s]/", "", $title);

所以当用户输入

abc!?d$

会是

abc d

但是因为用户将它输入到文本输入中,所以它转到“x.php?title=abc!?d$”。 我希望它转到“x.php?title=abc+d” 因为我想要“abc d”、“abc$$$$$$$$$d”、“abc__.!d”等转到相同的网址。 我该如何管理这个。谢谢。

最佳答案

基本上,您的意思是,如果彼此相邻的可替换字符不止一个,那么您只想在其中放置一个空格字符。是吗?

在那种情况下,是的,很简单:您只需在正则表达式中的字符类后面添加一个加号,如下所示:

$title = preg_replace("/[^a-zA-Z0-9\s]+/", " ", $title);

加号告诉正则表达式查找前一项的一个或多个匹配项。

希望对您有所帮助。

关于php - 正则表达式 - preg_replace 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6411119/

相关文章:

php - 如何在 PHP 中从这个组合中删除点

php - 获取特定json中的mysql结果

javascript - 正好有 2 个大写字母和 3 个数字的正则表达式

mysql - MySQL 中的 PREG_REPLACE 和 PREG_REPLACE_EVAL

c# - 使用正则表达式规范化电话号码

javascript - 无法形成正则表达式

php - PHP preg_replace() 中的正则表达式产生空结果

PHP 脚本没有被执行

java - 将凭据从 PHP Web 应用程序发送到 Java Web 应用程序

php - 并非所有 header 都在 $_SERVER [PHP] 中可用