首页 > 后端开发 > php教程 > 如何将字符串拆分为单词,同时保留引用的短语?

如何将字符串拆分为单词,同时保留引用的短语?

Susan Sarandon
发布: 2024-12-06 02:59:17
原创
1005 人浏览过

How to Split a String into Words While Preserving Quoted Phrases?

如何按单词拆分字符串,保留引用的文本

对于给定字符串 "Lorem ipsum "dolor sat amet" consectetur "adipiscing elit “dolor”,我们寻求一种将其分解为数组的方法,同时保持引用短语的完整性。使用提供的代码:

$mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
$noquotes = str_replace("%22", "", $mytext");
$newarray = explode(" ", $noquotes);
登录后复制

导致单个单词被拆分。为了解决这个问题,我们利用正则表达式:

$text = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor';
preg_match_all('/"(?:\\.|[^\\"])*"|\S+/', $text, $matches);
登录后复制

此正则表达式匹配带引号的字符串或非空白字符。带引号的字符串可以包含转义双引号 ("),并且该技术可以适应这种情况。结果:

Array
(
    [0] => Array
        (
            [0] => Lorem
            [1] => ipsum
            [2] => "dolor sit amet"
            [3] => consectetur
            [4] => "adipiscing \"elit"
            [5] => dolor
        )

)
登录后复制

解释:

正则表达式可以分解为它的组成部分:

  • `" # 匹配双引号字符("
  • (?: # 开始非捕获组 1
  • # 匹配反斜杠字符 ()
  • . # 匹配除换行符之外的任意字符
  • |# OR
  • 1 # 匹配除 and 以外的任何字符 "
  • )* # 结束非捕获组 1 并重复零次或多次
  • " # 匹配双引号字符 ("
  • | # OR
  • S # 匹配一个或多个非空白字符

  1. "

以上是如何将字符串拆分为单词,同时保留引用的短语?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板