<?php
$test = ["О'Генри", "Анон", "Анна-Мария", "О'Генри'и"];
/*Любой символ, кроме апострофа, затем апостроф (который может быть и не быть), затем условие - если апостроф существует, то применить регулярное выражение*/
$regexp = "/^[^']{1,}'?(?(?='{1,}) [а-яё]{1,}'{1}[а-яё]{1,})[^']{1,}$/ui";
$result = [];
foreach ($test as $value) {
echo "Слово $value\n";
preg_match($regexp, $value, $result);
var_dump($result);
echo "\n\n";
}
preferences:
24.81 ms | 405 KiB | 5 Q