文字列と、文字列を比較しpreg_match_all
て一致を返す名前のリストがあります。ただし、名前のリストには、名または姓のみの名前もあれば、両方の名前もあります。以下の私の例を参照してください。
$names = 'jon|jon snow|lana|smith|lana smith|megan';
$string = 'Jon Snow and Lana Smith met up with Lana and Megan.';
preg_match_all("~\b($names)\b~i", $string, $matches);
現在の式を使用した上記の例では、すべての名前が返されます。それは私が望むものではありません。
返してほしいもの:ジョン・スノウ、ラナ・スミス、ラナ、ミーガン。
返してほしくないもの:ジョン、スミス