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


removing 2 or more consecutive dash in string

我有以下字符串:

made by order 7-10 days work Ekspres order 3-5 days work (+10k) ------------------------------------------- Bisa dipesan dengan model jumper

我想删除字符串中任何2个或更多连续的破折号,所以在上面的情况下,我想在字符串中保留3-5,但我想删除这个字符串中可怕的长破折号。我该怎么做?

使用preg_replace函数,

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

演示

CCD_ 1与文字CCD_ 2匹配,并且后面的CCD_。这将匹配2个或多个连续的破折号。用空字符串替换匹配的短划线将得到所需的输出。

为了完整起见,这有相同的结果:

preg_replace('/--+/', '', $string);

有人向我提出了一个问题,问我应该使用哪个版本,我说使用你喜欢的版本,它们都是一样的,但第一个(公认的答案)在大多数时候写起来会更短,因为你不必键入重复字符("-")n次。

此外,您可以在{}版本中使用"/"分隔符,这在php中更常见。

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