I have a string which looks like this:
something-------another--thing
//^^^^^^^ ^^
I want to replace the multiple dashes with a single one.
So the expected output would be:
something-another-thing
//^ ^
I tried to use str_replace()
, but I have to write the code again for every possible amount of dashes. So how can I replace any amount of dashes with a single one?
For Rizier:
Tried:
$mystring = "something-------another--thing";
str_replace("--", "-", $mystring);
str_replace("---", "-", $mystring);
str_replace("----", "-", $mystring);
str_replace("-----", "-", $mystring);
str_replace("------", "-", $mystring);
str_replace("-------", "-", $mystring);
str_replace("--------", "-", $mystring);
str_replace("---------", "-", $mystring);
etc...
But the string could have 10000 of lines between two words.
Use preg_replace
to replace a pattern.
$str = preg_replace('/-+/', '-', $str);
The regular expression -+
matches any sequence of 1 or more hyphen characters.
If you don't understand regular expressions, read the tutorial at www.regular-expression.info.
you can use
<?php
$string="something-------another--thing";
echo $str = preg_replace('/-{2,}/','-',$string);
Output
something-another-thing
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With