3v4l.org

run code in 300+ PHP versions simultaneously
<?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