将多个破折号替换为一个破折号
Replace multiple dashes with one dash
我有一个看起来像这样的字符串:
something-------another--thing
//^^^^^^^ ^^
我想用一个破折号替换多个破折号。
所以预期的输出是:
something-another-thing
//^ ^
我尝试使用 str_replace()
,但我必须为每个可能的破折号重新编写代码。那么如何用单个破折号替换任意数量的破折号呢?
对于里齐尔:
尝试过:
$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...
但是字符串在两个单词之间可能有 10000 行。
使用preg_replace
替换模式。
$str = preg_replace('/-+/', '-', $str);
正则表达式 -+
匹配 1 个或多个连字符的任意序列。
如果您不了解正则表达式,请阅读 www.regular-expression.info 上的教程。
你可以使用
<?php
$string="something-------another--thing";
echo $str = preg_replace('/-{2,}/','-',$string);
输出
something-another-thing
如果您有一个包含多个字符的字符串需要清理,请使用:
$string="Hello,,,my text contains unused characters... What can i do???"
$newString=preg_replace('#([\-\.\?])\1+#','',$string);
如果您有一个带有未知多个符号的字符串需要清理,请使用:
$string="!!!!A string with ooooother unknoooooown multiple Signs!!!!"
$newString=preg_replace('#([.])\1+#','',$string);
我有一个看起来像这样的字符串:
something-------another--thing
//^^^^^^^ ^^
我想用一个破折号替换多个破折号。
所以预期的输出是:
something-another-thing
//^ ^
我尝试使用 str_replace()
,但我必须为每个可能的破折号重新编写代码。那么如何用单个破折号替换任意数量的破折号呢?
对于里齐尔:
尝试过:
$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...
但是字符串在两个单词之间可能有 10000 行。
使用preg_replace
替换模式。
$str = preg_replace('/-+/', '-', $str);
正则表达式 -+
匹配 1 个或多个连字符的任意序列。
如果您不了解正则表达式,请阅读 www.regular-expression.info 上的教程。
你可以使用
<?php
$string="something-------another--thing";
echo $str = preg_replace('/-{2,}/','-',$string);
输出
something-another-thing
如果您有一个包含多个字符的字符串需要清理,请使用:
$string="Hello,,,my text contains unused characters... What can i do???"
$newString=preg_replace('#([\-\.\?])\1+#','',$string);
如果您有一个带有未知多个符号的字符串需要清理,请使用:
$string="!!!!A string with ooooother unknoooooown multiple Signs!!!!"
$newString=preg_replace('#([.])\1+#','',$string);