У меня есть список предметов, в котором указан его тип в данном случае «фрукты», теперь мне нужен список всех фруктов и их количество
fruits 5 apples, 2 oranges, 3 bananas
регулярное выражение, которое я пробовал
(?<=fruits\s)((?<count>\d{1,})\s(?<fruit>\w{1,},))
но это дает мне первый фрукт и его количество, но я хочу список всех фруктов с их количеством, поэтому я попробовал это
(?<=fruits\s((?:\d{1,})\s(?:\w{1,},))*)((?<count>\d{1,})\s(?<fruit>\w{1,},))
но я получаю ошибку, утверждая, что взгляд сзади должен быть фиксированной ширины!
Я попробовал образец здесь: http://regex101.com/r/oE6jJ1/1
Используйте приведенное ниже регулярное выражение и получите счет из индекса группы 1 и название фрукта из индекса группы 2.
(?:^fruits|(?<!^)\G)\h*\K(?<count>\d*)\h*(?<fruit>\w*)
^(?!fruits).*$|((?<count>\d{1,})\s(?<fruit>\w{1,}))
Попробуйте это. Захватите захват. См. Демонстрацию.