我认为难点在于随机文本也可以包含逗号.
如果关键字全部在一行上并且它是整个文本的最后一行,请修剪整个文本,从末尾删除新的行字符.然后从最后一个新行字符到结尾.这应该是包含关键字的字符串.一旦你将这部分单独挑出,你可以在逗号上爆炸字符串并计算部分.
$string = " some gibberish, some more gibberish, and random text
keyword1, keyword2, keyword3
";
$lastEOL = strrpos(trim($string), PHP_EOL);
$keywordLine = substr($string, $lastEOL);
$keywords = explode(',', $keywordLine);
echo "Number of keywords: " . count($keywords);
我知道这不是一个正则表达式,但我希望它有所帮助.
找到解决方案的唯一方法是找到将随机文本与关键字中不存在的关键字分开的内容.如果关键字中存在新行,则无法使用它.但是连续2个新线?或任何其他角色.
$string = " some gibberish, some more gibberish, and random text
keyword1, keyword2, keyword3,
keyword4, keyword5, keyword6,
keyword7, keyword8, keyword9
";
$lastEOL = strrpos(trim($string), PHP_EOL . PHP_EOL); // 2 end of lines after random text
$keywordLine = substr($string, $lastEOL);
$keywords = explode(',', $keywordLine);
echo "Number of keywords: " . count($keywords);
(编辑:添加更多新行的示例 – 远射)