为了账号安全,请及时绑定邮箱和手机立即绑定

如何合并两个正则表达式模式模型?

如何合并两个正则表达式模式模型?

PHP
互换的青春 2022-06-11 18:59:11
假设我有一个字符串。`$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


查看完整回答
反对 回复 2022-06-11
?
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


查看完整回答
反对 回复 2022-06-11
  • 2 回答
  • 0 关注
  • 204 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信