Php 如何使用正则表达式从一组复杂的字符串中提取此文本?
我要提取的内容 芹菜条、梨、草莓、燕麦粥、龙舌兰、全脂牛奶、蛋白粉、鳄梨、蘑菇、特级初榨橄榄油 我尝试过的Php 如何使用正则表达式从一组复杂的字符串中提取此文本?,php,regex,Php,Regex,我要提取的内容 芹菜条、梨、草莓、燕麦粥、龙舌兰、全脂牛奶、蛋白粉、鳄梨、蘑菇、特级初榨橄榄油 我尝试过的 (^...*(\d | oz |\(| tsp |½| of)of)(,|\().$) 我得到的 运行时,单击“预拆分”选项卡 理想情况下,我应该能够进行匹配[0]并获得名称。您可以在preg\u match或preg\u match\u所有功能中使用此正则表达式: 6 celery sticks, chopped 1 pear 300g/10.6oz strawberries 50g
(^...*(\d | oz |\(| tsp |½| of)of)(,|\().$)
我得到的
运行时,单击“预拆分”选项卡
理想情况下,我应该能够进行匹配[0]并获得名称。您可以在
preg\u match
或preg\u match\u所有功能中使用此正则表达式:
6 celery sticks, chopped
1 pear
300g/10.6oz strawberries
50g (1.7oz) porridge oats (uncooked)
1 tsp agave
100ml (3.4oz) Whole milk (soy/almond/rice/hemp/oat)
1 scoop of protein powder (approx. 20g/0.7oz)
½ avocado
100g/3.5oz of mushrooms, chopped
1 tsp extra virgin olive oil
正则表达式详细信息:
^
:开始
[\d½]+
:匹配1+位或½
\S*
:匹配0个或多个非空格字符
\h+
:匹配1+个水平空格
(?:\([^)]*\)\tsp |*of\b)?\h*
:匹配额外的字符位
([a-z]+(?:\h+[a-z]+)*)
:匹配成分名称
评论不适用于长时间的讨论;此对话已结束。
^[\d½]+\S*\h+(?:\([^)]*\)|tsp|.*? of\b)?\h*([a-z]+(?:\h+[a-z]+)*)