<?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";
}
- Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- Слово О'Генри
array(1) {
[0]=>
string(13) "О'Генри"
}
Слово Анон
array(1) {
[0]=>
string(8) "Анон"
}
Слово Анна-Мария
array(1) {
[0]=>
string(19) "Анна-Мария"
}
Слово О'Генри'и
array(0) {
}
preferences:
92.07 ms | 402 KiB | 62 Q