我有一个字符串和一个名称列表,我将字符串与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);
上面带有我当前表达式的示例返回所有名称。这不是我想要的。
我想要返回的东西:乔恩·雪诺、拉娜·史密斯、拉娜、梅根。
我不想退货:乔恩,史密斯