Я новичок в регулярных выражениях, поэтому мне не понадобилось много времени, чтобы полностью потеряться:]
Что мне нужно сделать:
У меня есть строка значений 'a: b, a2: b2, a3: b3, a4: b4', где мне нужно найти определенную пару значений (то есть: a2: b2) по второму значению данной пары (b2) и получить первое значение пары в качестве выхода (a2).
Разрешены все символы (кроме ',', который разделяет каждую пару значений), и любое из вторых значений (b, b2, b3, b4) является уникальным (не может присутствовать в строке более одного раза)
Позвольте мне показать лучший пример, так как предыдущий может быть неясным:
Это строка: 2 минуты: 2,5 минуты: 5,10 минуты: 10,15 минут: 15, никогда: 0
Найденный шаблон: 5
Я подумал, что лучше всего использовать функцию preg_match с функцией subpattern.
Итак, я попробовал следующее:
$str = '2 minutes:2,5 minutes:5,10 minutes:10,15 minutes:15,20 minutes:20,30 minutes:30, never:0';
$re = '/(?P<name>\w+):5$/';
preg_match($re, $str, $matches);
echo $matches['name'];
Требуется вывод «5 минут», но он не работает.
Я также хотел бы придерживаться Perl-совместимых рег. выражения в виде кода выше включены в скрипт PHP.
Кто-нибудь может мне помочь? Теперь я немного отчаялся, потому что я провел большую часть дня в этом ...
Спасибо всем вам, ребята.