我正在尝试提取匹配模式,例如:
AA / 8G + 8G + 8G + 8G /没有*
AA / 8 * G + 8 * G + 8 * G + 8 * G / WITH *
AA / 8G + 8 * G + 8 * G + 8 * G /混合,这是不支持的
使用以下正则表达式:
https://regex101.com/r/zemJ8H/1
但它只匹配8G + 8G + 8G +
因为该模式被识别为8G ** + **
有没有办法在组中包含最后一个8G(没有+)?
答案 0 :(得分:0)
AA/(8\*?G\+?)+/
https://regex101.com/r/zemJ8H/2
这样的事情怎么样? AA后跟一个计划,然后是任意数量的序列,其中含有8个,任选的a *,a G和任选的a +,最后是a +。
答案 1 :(得分:0)
此表达式处理所有三种情况,包括混合情况:
(?<=/)([0-9]{1,2})[*]*([GM])[+]?(\1[*]*\2[+]?)+
这个想法是从字母(\1
)中分离出数字(新\2
)的捕获,并在表达式结尾处使用重复组(\1[\*]*\2[\+]?)+
中的两个捕获