PHP preg_替换以下要求的表达式?

PHP preg_替换以下要求的表达式?,php,regex,Php,Regex,输入文本: Hello, raj's           dogs age                     is 18. " 输出: Hello, raj's dogs age is 18. 要求: 删除单词之间的额外空格 允许大写和小写字母、数字、点(.)和单引号(') 在字符串的开始和结束处不允许有空格 使用str_replace()函数 尝试用一个空格替换两个或多个空白字符: $string = " Hello, raj's dogs

输入文本:

 Hello, raj's            dogs age                              is 18. "
输出:

Hello, raj's dogs age is 18.
要求:

  • 删除单词之间的额外空格
  • 允许大写和小写字母、数字、点(.)和单引号(')
  • 在字符串的开始和结束处不允许有空格
  • 使用str_replace()函数

    尝试用一个空格替换两个或多个空白字符:

    $string = " Hello, raj's           dogs age                     is 18. ";
    $result = trim(preg_replace('/\s{2,}/', ' ', $string));
    echo $result;
    
    这张照片是:

    Hello, raj's dogs age is 18.
    

    将多个空间替换为一个空间

    echo trim(preg_replace('/\h+/', ' ', ' Hello, raj\'s           dogs age                     is 18. '));
    

    \h
    是一个水平空白(制表符/空格)。后面的
    +
    表示必须至少预设一个。替换中的空间仅用一个替换一个或多个。PHP的
    trim
    可以用来删除前导/尾随空格。

    你在这里做什么?这将用一个不会解决任何问题的空间替换一个空间。(例如,如果您运行代码)到目前为止您尝试了什么?
    echo trim(preg_replace('/\h+/', ' ', ' Hello, raj\'s           dogs age                     is 18. '));