我想把" - "之前和之后的词分开。用php。我无法将带有空间的文本和" - "之后分开。
<?php
$value="this | is : my , text - test , done > hello-hi";
$keywords = preg_split("/[,|:&>]+/", $value);
print_r($keywords);
?>
回答: 数组([0] =&gt; this [1] =&gt;是[2] =&gt; my [3] =&gt; text - test [4] =&gt; done [5] =&gt; hello-hi)< / p>
我想要的答案如下: 数组([0] =&gt; this [1] =&gt;是[2] =&gt; my [3] =&gt; text [4] =&gt; test [5] =&gt; done [6] =&gt;你好嗨)
答案 0 :(得分:1)
我认为你可以制作一个gruop并添加一个OR
(|
)来分隔-
之间的单词。
([,|:&>]+|\s+-\s+)
将按,|:&>
或a分隔一个或多个空格,后跟-
,后跟一个或多个空格。这样可以避免像hello-hi
这样的字符串/文本分成两个元素。
$value="this | is : my , text - test , done > hello-hi";
$keywords = preg_split("/([,|:&>]+|\s+-\s+)/", $value);
print_r($keywords);
输出:
Array ( [0] => this [1] => is [2] => my [3] => text [4] => test [5] => done [6] => hello-hi )