【发布时间】:2019-11-06 05:06:24
【问题描述】:
我正在尝试解析和标记食谱。成分可以用两种主要方式编写:
样式 1
1 Ripe Avocado
1x Ripe Avocado - x 是可选的,有时会出现
或:
样式 2
1 Ripe Avocado (lrg) 123
1x Ripe Avocado (lrg) 123 - 如果存在缩写,那么是项目代码整数
我正在尝试 a)检测它是否与样式 1 或 2 匹配和 b)标记为以下捕获组。
[1][Ripe Avocado][lrg]?[123]?
我似乎无法始终如一地解析这个,所以任何帮助将不胜感激!
编辑:
^(\d+)x? ([a-zA-Z0-9_', -]+) 是我所拥有的,但它没有考虑到样式 2 中的可选捕获组。
【问题讨论】:
-
你真的在你的正则表达式中使用
[]吗?这是为了定义字符类,而不是组。 -
另外
(?:)将是一个非捕获组,而不是一个可选组。 -
你能分享一下你正在尝试的正则表达式吗?据我了解,您可能需要类似: (\d)x?\s(\w.*)(\s(lrg)\ (\d.*))?
-
@VLAZ - 抱歉,这只是显示我理想结果的伪代码。
标签: javascript regex regex-group capture-group