我所追求的是用短划线替换空格-
但是只有当空格后面有一个字符时才这样做。原因是我有一个字符串数组,其中一些字符串在最后的单词或字符后面插入了空格。 (这是我无法控制的)。
例如
在下面的示例中,我使用%20来显示空格的位置
string1 = farmer%20jones
string2 = farmer%20jim%20
我有以下正则表达式preg_replace('/\s./', '-', $string);
我想我已经走了一半,但上面搜索了一个字符前面的空格并用-
取代了
上面的正则表达式得到的是
string1 = farmer-jones
string2 = farmer-jim-
我想要的是:
string1 = farmer-jones
string2 = farmer-jim
我不希望添加尾随-
。
任何帮助非常感谢
答案 0 :(得分:2)
您可以在此处使用否定前瞻:
$repl = preg_replace('/\h+(?!$)/', '-', $string);
\h+
将匹配1个或多个水平空格。(?!$)
将声明下一个位置不是行尾。