从字符串

问题描述:

删除单个字母我有这样的字符串:Bruce A Johnson从字符串

我希望它是Bruce Johnson

如何从PHP字符串中删除单个A? (所有'单词'只有1个字符需要删除)

+0

'都只有1个字符的“词”必须removed'这不是一个规范。其未定义为短语而没有定义。它只是意味着某个名字的解释者。 – sln 2011-04-06 21:14:27

事情是这样的:

preg_replace('/\b\w\b\s?/', '', $string); 

这是说删除对两侧和可选的后间隔上字边界的任何一个字字符。因此b test a test foo c将产生test test foo

如果你可能有一些尾随标点符号(如Bruce A. Johnson)你可以用这个表达式摆脱标点符号:

preg_replace('/\b\w\b(\s|.\s)?/', '', $string); 
// 'b test a, test foo c' -> 'test test foo' 
+0

工程很好。这对于创建一个干净的网址字符串用于发布邮件时非常有用。 – TheRealJAG 2016-05-10 15:05:45

使用explode()拆分三个单词,删除返回数组的中间元素,然后使用implode()重新加入字符串。

+0

Thanx,但我有一种感觉,这需要做一个正则表达式......唯一的问题是我不擅长正则表达式:) – Dylan 2011-04-06 20:53:46

+1

@Dylan正则表达式肯定不是必需的,因为有几种方法做到这一点。正则表达式可能产生最简洁的代码,但与无正则表达式的方法相比,它可能需要更长的执行时间。这些都是你考虑改变方向的原因之一。 – Wiseguy 2011-04-06 20:59:44