re.sub。的Jython正则表达子组名称

时间:2012-05-29 10:15:41

标签: python regex jython

嗨,我有以下的重要工作:

re.sub("(?P<colon>(, )\s*|^)(?P<field>[A-Za-z]*)", "\\g<colon>`\\g<field>`", fields

然而我想这样做(捕捉内部群体):

re.sub("((?P<colon>, )\s*|^)(?P<field>[A-Za-z]*)", "\\g<colon>`\\g<field>`", fields

但是,如果我尝试引用组中的组(例如,只包含g的组:r(e(g)e)x),我会收到unmatched group错误/异常。

那么如何引用嵌套的捕获组,或者使用jython(about python 2.5.1)是不可能的

编辑:根据Qtax(A-z =&gt; A-Za-z)的答案修复但是我的真正问题尚未解决

1 个答案:

答案 0 :(得分:1)

所有这些群体都被捕获,其中一些群体没有被命名。您应该能够引用任何捕获组,但我不知道python / jython正则表达式规范。尝试表达式:

re.sub("(?:(, )\s*|^)([A-Za-z]*)", r"\1`\2`", ...)

如果您的意思是[A-z]A-Z,则a-z可以写成[A-Za-z]或使用一些不区分大小写的标记,例如(?i)[a-z],则不能使用{{1}}。