Php 删除字符串中的两个或多个连续破折号

Php 删除字符串中的两个或多个连续破折号,php,regex,Php,Regex,我有以下字符串: made by order 7-10 days work Ekspres order 3-5 days work (+10k) ------------------------------------------- Bisa dipesan dengan model jumper 我想删除字符串中任何2个或更多的连续破折号,所以在上面的例子中,我想在字符串中保留3-5个破折号,但我想删除这个字符串中可怕的长破折号。如何执行此操作?使用函数 preg_replace('~-{2

我有以下字符串:

made by order 7-10 days work Ekspres order 3-5 days work (+10k) ------------------------------------------- Bisa dipesan dengan model jumper
我想删除字符串中任何2个或更多的连续破折号,所以在上面的例子中,我想在字符串中保留3-5个破折号,但我想删除这个字符串中可怕的长破折号。如何执行此操作?

使用函数

preg_replace('~-{2,}~', '', $string);


-
匹配一个文本
-
,下面的
{2,}
将重复前面的字符两次或更多次。这将匹配2个或更多连续破折号。用空字符串替换匹配的破折号将获得所需的输出。

为了完整起见,这会产生相同的结果:

preg_replace('/--+/', '', $string);
有人向我指出这个问题,问我应该使用哪个版本,我说使用你喜欢的版本,它们都做相同的事情,但第一个(接受的答案)在大多数情况下会更短,因为你不必输入重复字符(“-”)n次

此外,您还可以在{}版本中使用“/”分隔符,这在php中更为常见

preg_replace('/-{2,}/', '', $string);