Php从字符串的最后一个字符中删除特殊字符

标签 php string replace

我有一组数组字符串 .. 在最后一个位置以及它们之间包含特殊字符。我只想从最后一个地方删除特殊字符。

preg_replace('/[^A-Za-z0-9\-\']/', '', $string);  

我知道我可以使用替换函数来删除所有特殊字符,但我不想删除字符串之间的特殊字符。我只想从最后一个位置删除特殊字符。抱歉我的英语不好..

hope,
 all" 
inthe. 
world" 
to-the. 
world" 
some-thing"

最佳答案

您可以使用 rtrim()如果您要删除的特殊字符事先已知:

$string = rtrim($string, ',".');

第二个参数描述了应该删除的字符列表。

Demo


如果不知道特殊字符,则可以使用正则表达式解决方案。下面的 preg_replace() 语句将删除任何不是单词字符([a-zA-Z0-9_])或连字符(-) 或单引号 ('):

preg_replace('/[^\w\-\']$/', '', $str);  

解释:

  • [^\w-\'] - 匹配列表中的单个字符
    • \w - 任何单词字符 [a-zA-Z0-9_]
    • \- - 文字字符 -
    • \' - 文字字符 '
  • $ - “行尾” anchor - 用于断言字符串末尾的位置

关于Php从字符串的最后一个字符中删除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21510788/

相关文章:

php - Ajax/PHP - 我应该使用一个长时间运行的脚本还是轮询?

php - 从 URL(自己网站的)获取 HTML 内容

c - 字符数组到链表 - 使用数组中的地址

c++ - 在字符串中输出数据

swift - 我怎样才能用 swift 的段落声明字符串?

javascript - 如何在找到第一个匹配项时停止 DOM 搜索循环?

replace - 如何通过命令行使用 TextWrangler 进行 "translate"Grep 查找/替换命令

php - 使用 PHP 和 MySQL - 需要良好且安全的 OO 设计

php - 移动/复制并重命名最近修改的文件

regex - 如何使用 XSLT 3.1 "replace"函数在括号外用逗号删除另一个数字之后的数字