我有一组数组字符串 .. 在最后一个位置以及它们之间包含特殊字符。我只想从最后一个地方删除特殊字符。
preg_replace('/[^A-Za-z0-9\-\']/', '', $string);
我知道我可以使用替换函数来删除所有特殊字符,但我不想删除字符串之间的特殊字符。我只想从最后一个位置删除特殊字符。抱歉我的英语不好..
hope,
all"
inthe.
world"
to-the.
world"
some-thing"
最佳答案
您可以使用 rtrim()
如果您要删除的特殊字符事先已知:
$string = rtrim($string, ',".');
第二个参数描述了应该删除的字符列表。
如果不知道特殊字符,则可以使用正则表达式解决方案。下面的 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/