2011-08-16 25 views
0

好吧,所以说我有一个字符串“!!测试”或“!!!!!测试”。PHP的正则表达式问题与preg_replace

我想要做的就是使用preg_replace(),只保留第一个“!”但在第一个“!”之后保留其余的文本那不是“!”

“!!测试” - > “!测试”

回答

3
$str = preg_replace('/!+/', '!', $str); 

替换多个! s的单!

http://www.regular-expressions.info/有一些很棒的教程和学习正则表达式的参考。

+0

也许你应该在正则表达式的开头添加一个^,因为问题是关于“第一”的! – MaxiWheat

+0

@MaxiWheat我认为这只是一种解释将多个'!'放在一起的概念。如果OP要求只替换一组'''s并且该组保证在字符串的开头,那么是的,我会添加'^'。 – Wiseguy

0
preg_replace('#!+\s?test#','!test', $subject); 

适用于这两个示例。