所以我正在使用Python中的正则表达式。这是我到目前为止所得到的(通过RegExr调试):
@@(VAR|MVAR):([a-zA-Z0-9]+)+(?::([a-zA-Z0-9]+))*@@
所以我想要匹配的是这样的东西:
@@VAR:param1@@
@@VAR:param2:param3@@
@@VAR:param4:param5:param6:0@@
基本上,你有VAR或MVAR后跟冒号然后是一些参数名称,然后是结束字符(@@)或另一个:和一个参数。
所以,我在正则表达式上获得的组是VAR,第一个参数,然后是参数列表中的最后一个(对于最后一个例子,第三个组将是0)。我知道组是由(...)创建的,但是正则表达式是否有任何方法可以匹配多个组,因此param5,param6和0在它们自己的组中,而不是只有最多三个组?
我想避免必须匹配此字符串然后必须拆分:,因为我认为这是能够使用正则表达式完成的。也许我正以错误的方式接近这一点。
基本上,我试图看看我是否可以在匹配过程中找到并拆分而不是后期处理。
答案 0 :(得分:3)
如果这种格式是固定的,你不需要正则表达式,它只会让它变得更难。只需使用split
:
text.strip('@').split(':')
应该这样做。
答案 1 :(得分:1)
正则表达式中的组数是固定的。你需要以某种方式进行后处理。