假设我有一个字符串。`$str = " Hi, my name is
Petr"; `期待:$str = " Hi, my name is Petr";我需要替换字符串开头的所有空格“....”,然后如果字符串中的单词之间有多个空格,则将其替换为一个空格。我想用正则表达式函数'preg_replace'来做到这一点。但我不知道如何"/^\s+/"删除字符串开头的空格以及字符串"/\s+/"中单词之间的空格。是否可以将两个公式模式合并为一个模式?如果是这样,公式会是什么样子?
2 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
有几种方法可以实现这一目标。您可以利用preg_replace可以采用一系列模式和替换来使用您的两个正则表达式的事实:
$str = " Hi, my name is
Petr";
echo preg_replace(array('/^\s+/', '/\s+/'), array('', ' '), $str) . "\n";
或者,您可以使用稍微复杂一点的正则表达式,使用正则后向删除以字符串开头 ( ^) 或其他空格开头的任何空格序列:
echo preg_replace('/(?<=^|\s)\s+/', '', $str);
在这两种情况下,输出都是
Hi, my name is Petr
Hi, my name is Petr
jeck猫
TA贡献1909条经验 获得超7个赞
我猜,
$str = ' Hi, my name is
Petr';
$result = preg_replace('/\s{2,}/', ' ', $str);
$result = preg_replace('/^\s*|\s*$/', '', $result);
echo $result;
可能工作正常,它会输出:
Hi, my name is Petr
- 2 回答
- 0 关注
- 204 浏览
添加回答
举报
0/150
提交
取消