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);