如何按单词拆分字符串,保留引用的文本
对于给定字符串 "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 ) )
解释:
正则表达式可以分解为它的组成部分:
以上是如何将字符串拆分为单词,同时保留引用的短语?的详细内容。更多信息请关注PHP中文网其他相关文章!