【问题标题】:php regex remove all non-alphanumeric and space characters from a stringphp regex 从字符串中删除所有非字母数字和空格字符
【发布时间】:2016-01-14 17:12:36
【问题描述】:

我需要一个正则表达式来删除所有非字母数字和空格字符,我有这个

$page_title = preg_replace("/[^A-Za-z0-9 ]/", "", $page_title);

但它不会删除空格字符,而是将一些非字母数字字符替换为数字。

我需要删除标点符号和空格等特殊字符。

【问题讨论】:

  • replaces some non-alphanumeric characters with numbers?你没有替换任何你正在删除它的东西。出现了哪些数字?也许你有实体?显示$page_title,与var_dump
  • 先替换实体。
  • 如何替换实体

标签: php regex


【解决方案1】:

如果你想留下所有的字母数字位,你会使用这个:

(\W)+

这是一些测试代码:

$original = "Match spaces and {!}#";
echo $original ."<br>";

$altered = preg_replace("/(\W)+/", "", $original);
echo $altered;

这是输出:

匹配空格和 {!}#

匹配空间和

解释如下:

第一个捕获组:(\W) 匹配任何非单词字符 [^a-zA-Z0-9_]
量词:+ 一次到无限次,尽可能多次,按需回馈[贪心]

【讨论】:

  • \s\W 的子集
  • 好收获@sln!立即编辑。
【解决方案2】:

我需要删除标点符号和空格等特殊字符。

然后使用:

$page_title = preg_replace('/[\p{P}\p{Zs}]+/u', "", $page_title);
  • \p{P} 匹配任何标点符号
  • \p{Zs} 匹配任何空格字符
  • /u - 支持unicode

【讨论】:

  • 我在 $page-title IDM、PPC & SEO T&Cs 中有这个是 idmppcseotcs
  • @ttmt 038 是 & 符号的实体,请参阅 +30 分钟前对您的问题的第一条评论,然后更新问题。
  • @ttmt:正如 Chris 建议的那样,您应该显示有问题的 var_dump 的输出,并显示您的预期输出。
  • @ttmt - $page_title = 'IDM, PPC &amp;#038; SEO T&amp;#038;Cs'; $page_title = preg_replace("/[^A-Za-z0-9]/", "", $page_title); // tolower = idmppc038seot038cs 所以你必须先转换实体。
  • 很高兴您提请注意支持 Unicode 字符串。我发现这是关于Unicode Regular Expressions 的极好资源。删除任何形式的空格应该是'/[\p{P}\p{Z}]+/u'吗?
【解决方案3】:

试试这个

preg_replace('/[^[:alnum:]]/', '', $page_title);

[:alnum:] 匹配字母数字字符

【讨论】:

  • [:alpha:] 是字母字符。 [:alnum:] 是字母数字字符。
  • @chris85 因为他在更新问题后首先发布字母和字母数字
【解决方案4】:

在 Sublime 和 PHP Regex Tester 上对我很有用

$page_title = preg_replace("/[^A-Za-z0-9]/", "", $page_title);

【讨论】:

  • 我认为您希望 \s 在该字符类中,s 将是 a-z 涵盖的文字。
  • 不,在这种情况下不需要它,因为开始时有 ^,你可以在 phpliveregex.com 上试试(对不起,我的英语不是母语)
  • s 是一个s,它被范围所覆盖。见regex101.com/r/vC1dD6/2,空格是匹配的。
  • 你是对的,当我运行测试时我理解错了,“s”没有做任何功能,因为已经在 a-z 范围内,正则表达式工作的唯一剩下的(他的正则表达式)是删除“”谢谢@chris85
猜你喜欢
  • 1970-01-01
  • 2013-04-30
  • 2014-04-26
  • 1970-01-01
  • 2013-01-19
  • 2012-03-15
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
相关资源
最近更新 更多