難しいのは、ランダム テキストにコンマを含めることもできることだと思います。
キーワードがすべて 1 行にあり、それがテキスト全体の最後の行である場合は、テキスト全体をトリムして、末尾から改行文字を削除します。次に、最後の改行文字から最後までのテキストを取得します。これは、キーワードを含む文字列である必要があります。この部分を特定したら、カンマで文字列を分解して、その部分を数えることができます。
<?php
$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);
(編集:より多くの新しい行の例を追加-ロングショット)