Я работаю в PHP и нужно разобрать строки вида:Получить все совпадения с чистым регулярным выражением?
Rake (100) Pot (1000) Players (andy: 10, bob: 20, cindy: 70)
мне нужно, чтобы получить грабли, пот и реки вклада каждого игрока, с именами. Количество игроков является переменной. Заказ не имеет значения, если я могу совместить имя игрока с грабителем в последовательном порядке.
Например я ищу, чтобы получить что-то вроде этого:
Array
(
[0] => Rake (100) Pot (1000) Players (andy: 10, bob: 20, cindy: 70)
[1] => 100
[2] => 1000
[3] => andy
[4] => 10
[5] => bob
[6] => 20
[7] => cindy
[8] => 70
)
я смог придумать регулярное выражение, которое соответствует строке, но он возвращает только пару последний игрок-рейка
^Rake \(([0-9]+)\) Pot \(([0-9]+)\) Players \((?:([a-z]*): ([0-9]*)(?:,)?)*\)$
Выходы:
Array
(
[0] => Rake (100) Pot (1000) Players (andy: 10, bob: 20, cindy: 70)
[1] => 100
[2] => 1000
[3] => cindy
[4] => 70
)
Я попытался с помощью preg_match_all и г модификатора но безуспешно. Я знаю, что preg_match_all сможет получить мне то, что я хотел, если бы я ТОЛЬКО хотел бы пары вкладов с рейком игроков, но перед этим я также требую данных.
Очевидно, что я могу использовать взрыв и анализировать данные самостоятельно, но перед тем, как спуститься по этому маршруту, мне нужно знать, если/как это можно сделать с помощью чистого регулярного выражения.
Что ваше ожидаемый результат? –
Что происходит «Например, я хочу получить что-то вроде этого:« – Abovestand
Он не будет работать с 'preg_match_all' или' g', потому что повторение группы '() *' будет сохраняться только в последнем случае, которое является 'cindy'' Как ожидалось – nu11p01n73R