仅用连字符替换单词之间的空格并删除所有其他空格[重复]
Posted
技术标签:
【中文标题】仅用连字符替换单词之间的空格并删除所有其他空格[重复]【英文标题】:Replacing spaces only between words with a hyphen and remove all other spaces [duplicate] 【发布时间】:2020-04-22 17:15:44 【问题描述】:如何删除所有空格但单词之间有连字符,尤其是当字符串的开头或结尾有空格时?
例如:
" Cow jumped over the moon "
应该是:
"Cow-jumped-over-the-moon"
我尝试了以下方法,但我不确定如何去掉字符串前后没有连字符的空格。
$string_with_dashes = str_replace(' ','-',$string);
【问题讨论】:
这能回答你的问题吗? php Replacing multiple spaces with a single space。preg_replace("/\s+/", "-", trim($string))
@ggorlen 谢谢 - 它回答了部分问题 - 不完全是我想要的。
你试过代码了吗?看起来这会产生你想要的相同输出,trim
头部和尾部,preg_replace
和 /\s+/
。
因此修改答案中的代码以满足您的需求。它可以满足您的要求。
@MagnusEriksson 我明白了......完美 - 谢谢!
【参考方案1】:
你可以先修剪$string
$string = " Cow jumped over the moon ";
$string_with_dashes = str_replace(' ','-',trim($string));
echo $string_with_dashes;
如果你想减少单词之间的多个空格,你可以匹配 1+ 个水平空格 \h+
用连字符替换它们。
$string_with_dashes = preg_replace("/\h+/", "-", trim($string));
【讨论】:
听起来不错!!!但是如果字符串中有两个或三个空格怎么办。例如over
和 the
之间有 3 个空格?
在这种情况下,您可以像这样爆炸字符串: $stringArray = explode(" ", $string); /// 它将变成一个字符串。 $joinedString = join("-", $stringArray);然后实施上述解决方案以上是关于仅用连字符替换单词之间的空格并删除所有其他空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章
编写程序,输入字符串(包含空格),统计其中单词的个数,单词之间以一个或多个空格分隔。