正则表达式 - 基于模式捕获组
Regex - Capturing a group based on a pattern
我正在尝试提取匹配模式,例如:
AA/8G+8G+8G+8G/无*
AA/8*G+8*G+8*G+8*G/带*
AA/8G+8*G+8*G+8*G/混合,暂不支持
使用以下正则表达式:
https://regex101.com/r/zemJ8H/1
但它只匹配 8G+8G+8G+
因为模式被识别为8G**+**
有什么办法可以把最后的8G(没有+)包含在组里吗?
AA/(8\*?G\+?)+/
https://regex101.com/r/zemJ8H/2
像这样的事情怎么样? AA 后跟一个计划,后跟任意数量的序列,其中包含一个 8、可选的 *、G 和可选的后续 +,最后是 +。
此表达式处理所有三种情况,包括混合情况:
(?<=/)([0-9]{1,2})[*]*([GM])[+]?([*]*[+]?)+
想法是将数字(新 </code>)的捕获与字母(<code>
)分开,并在 ([\*]*[\+]?)+
末尾的重复组中使用这两个捕获表达式。
我正在尝试提取匹配模式,例如:
AA/8G+8G+8G+8G/无*
AA/8*G+8*G+8*G+8*G/带*
AA/8G+8*G+8*G+8*G/混合,暂不支持
使用以下正则表达式:
https://regex101.com/r/zemJ8H/1
但它只匹配 8G+8G+8G+
因为模式被识别为8G**+**
有什么办法可以把最后的8G(没有+)包含在组里吗?
AA/(8\*?G\+?)+/
https://regex101.com/r/zemJ8H/2
像这样的事情怎么样? AA 后跟一个计划,后跟任意数量的序列,其中包含一个 8、可选的 *、G 和可选的后续 +,最后是 +。
此表达式处理所有三种情况,包括混合情况:
(?<=/)([0-9]{1,2})[*]*([GM])[+]?([*]*[+]?)+
想法是将数字(新 </code>)的捕获与字母(<code>
)分开,并在 ([\*]*[\+]?)+
末尾的重复组中使用这两个捕获表达式。