我有一个包含字词和关键字的字符串,关键字以"#"开头。并且在他们相应的单词后面的一行或多行。
我有这个字符串:
word1
#keyword1#keyword2#keyword3#keyword4#keyword5
word2
#keyword1#keyword2#keyword3#keyword4#keyword5
#keyword6#keyword7#keyword8
word3
#keyword1#keyword2#keyword3
#keyword4#keyword5
#keyword6#keyword7
我希望获得如下输出:
word1*#keyword1#keyword2#keyword3#keyword4#keyword5
word2*#keyword1#keyword2#keyword3#keyword4#keyword5#keyword6#keyword7#keyword8
word3*#keyword1#keyword2#keyword3#keyword4#keyword5#keyword6#keyword7
我该怎么办?我不知道如何处理这件事。
答案 0 :(得分:1)
我认为是:
$str = "word1
#keyword1#keyword2#keyword3#keyword4#keyword5
word2
#keyword1#keyword2#keyword3#keyword4#keyword5
#keyword6#keyword7#keyword8
word3
#keyword1#keyword2#keyword3
#keyword4#keyword5
#keyword6#keyword7";
$results= (preg_split('/(\n)+/', $str));
$strArr = [];
$str = "";
foreach($results as $result) {
if($result[0] != "#") {
if(!empty($str)) {
$strArr[] = $str;
$str = "";
}
$str .= $result . "*";
} else if($result[0] == "#") {
$str.= $result;
}
}
$strArr[] = $str;
var_dump($strArr);
结果:
array(3) {
[0]=>
string(53) "word1
*#keyword1#keyword2#keyword3#keyword4#keyword5
"
[1]=>
string(81) "word2
*#keyword1#keyword2#keyword3#keyword4#keyword5
#keyword6#keyword7#keyword8
"
[2]=>
string(72) "word3
*#keyword1#keyword2#keyword3
#keyword4#keyword5
#keyword6#keyword7"
}