php - preg_replace 删除除破折号、字母、数字、空格和下划线以外的所有字符

标签 php regex

我需要删除字符串中除破折号、字母、数字、空格和下划线之外的所有字符。

关于 SO 的各种答案都非常接近( Replace all characters except letters, numbers, spaces and underscoresRemove all characters except letters, spaces and apostrophes 等),但通常不包括破折号。

帮助将不胜感激。

最佳答案

您可以执行以下操作:

    $string = ';")<br>kk23how nowbrowncow_-asdjhajsdhasdk32423ASDASD*%$@#!^ASDASDSA4sadfasd_-?!'; 
    $new_string = preg_replace('/[^ \w-]/', '', $string);
    echo $new_string;
  • [^]代表一个 list of characters NOT to match
  • \wshort用于单词字符 [A-Za-z0-9_]
  • -字面上匹配连字符
  • 关于php - preg_replace 删除除破折号、字母、数字、空格和下划线以外的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43404980/

    相关文章:

    php - Mysql 结果和数组操作

    php - 服务器迁移后,在 CakePHP3 的请求数据中找不到“_Token”

    php - 如何在 HTML2pdf 中添加 &lt;script&gt; 标签

    php - Laravel Mail::send() 使用收件人和抄送地址发送多封邮件

    php - php mysql 中的 friend 建议

    regex - 使用 Notepad++ 正则表达式格式化电话号码

    php - 如何从 HTML 注释标签中删除缩进或空格?

    c - 使用 ANSI C 中的正则表达式扫描和交换字符串值

    php - 用于精确匹配一个或两个单词的 mysql 正则表达式

    使用 or 运算符时,Python 正则表达式的模糊搜索不会返回所有匹配项