用PHP替换多个实例
说我有 sometext somemore--test--test2 我怎么能让它替换超过1个的所有Instance?让它只替换1个,这样看起来就像这样用PHP替换多个实例,php,string,replace,Php,String,Replace,说我有 sometext somemore--test--test2 我怎么能让它替换超过1个的所有Instance?让它只替换1个,这样看起来就像这样 sometext-somemore-test-test2使用正则表达式:s/-+/-/The+表示“前面的一个或多个字符”。用于($i=0;$i
sometext-somemore-test-test2使用正则表达式:
s/-+/-/
The+表示“前面的一个或多个字符”。用于($i=0;$i$text = str_replace("--", "-", $text);
使用
使用以下命令:
echo preg_replace("/-+/","-","sometext-somemore--test---test2");
//prints sometext-somemore-test-test2
可以使用正则表达式和函数执行此操作:
$str = 'sometext-somemore--test---test2';
echo preg_replace('/-+/', '-', $str);
将给你:
sometext-somemore-test-test2
我在这里使用的模式:
-+
- 匹配一个
-
- 一次或多次:
+
- 请参阅PCRE手册中关于此的部分
如果您对正则表达式感兴趣,请毫不犹豫地阅读本手册的一节;-) 我看不出for/if循环是如何工作的。。据我所知,如果字符4和5都是“x”,它将“55”替换为“5”。您还需要检查$text[$i]='-',并且必须使用substr_replace($text'-',$i,2)而不是str_replace()。不过,正则表达式可能是一种方法。@MSpreij:看来Brendan试图创建一种算法来替换任意重复字符@Brendan Long:试试这个:preg_replace('{(..\1+}','$1',$text);是的,当我读到它时,我想问题是如何替换任意两个重复字符:\
sometext-somemore-test-test2