Есть строка: Сочи (Адлер) (Россия)
, из которой мне нужно изъять текст, который находится в последих скобках. То есть, текст Россия
. Для этого я написал регулярное выражение:
preg_match('/\((.*?)\)$/', ...);
Но оно почему-то выводит мне такие матчи:
array(2) {
[0]=>
string(27) "(Адлер) (Россия)"
[1]=>
string(25) "Адлер) (Россия"
}
Но почему? Ведь я поставил в конце $
, что означает конец строки.
Подправьте шаблон, чтоб он искал НЕ скобки в конце строки:
$str = 'Сочи (Адлер) (Россия)';
preg_match('~\(([^()]+)\)$~', $str, $arr);
var_dump($arr);
Результат:
array (size=2)
0 => string '(Россия)' (length=14)
1 => string 'Россия' (length=12)
preg_match('/\(([^)]*)\)[^(]*$/', 'Сочи (Адлер) (Россия)', $match);
print_r($match);
Результат:
Array
(
[0] => (Россия)
[1] => Россия
)
$re = '/(?!.*\()[а-я]+/iu';
$str = 'Сочи (Адлер) (Россия)';
preg_match($re, $str, $matches);
var_dump($matches);
array(1) {
[0]=>
string(12) "Россия"
}
Тест
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок