If you want to do this quickly, and with gathering the smallest amount of resource-gathering, you can probably come up with some good heuristics and some regular expressions.
Since you say that the list is "somewhat formatted," I'll work on the assumption that there is one ingredient directive per line.
I'd start by coming up with a list of measurement names, which are a relatively-closed class (as we call it in linguistics), like $measurements=['cup', 'tablespoon', 'teaspoon', 'pinch', 'dash', 'to taste', ...]
. You might even come up with a dictionary that maps several items to one normalised value (so $measurements={cup:['cup', 'c'], tablespoon:['tablespoon', 'tbsp', 'tablesp', ...], ...}
or whatnot.)
Then on each line, you can find the unit of measurement if it is in your dictionary. Next, look for numbers (which may be formatted as decimals -- e.g. 1.5 -- or as complex fractions -- e.g. 2 1/2 or 2-1/2), and assume that is the count of the units you need. If there are no numbers, then you can just assume that the unit is one (as maybe the case with "to taste" and the like).
Finally, you can assume anything that is remaining is the actual ingredient.
I imagine this heuristic would cover 75-80% of your cases. You're still going to have a lot of corner cases, like when the recipe calls for "2 oranges", or -- worse! -- "Juice of 2 oranges". In these cases, you would either want to add them (during some sort of off-line curation) as exceptions, or let yourself be "OK" with them not being treated properly.