那么, 我试图在xml上应用一些正则表达式(搜索/替换)。是的我必须使用一些lib。但是在那种情况下我不能。我的问题是,正如您可能想到的那样,用整数替换node的值。当我尝试这个时,它会给我分组错误。这是我的模式:
搜索模式:
(<fieldset>)([^>].+)(<ipadd>)([^>].+)(<value>)([^>].+)(</value>)([^>].+)(</ipadd>)([^>].+)(</fieldset>)
替换模式:
\1\2\3\4\5123.123.123.123\7\8\9\10\11
如您所见,第五组在替换模式中变为“\ 5123”。当然它不起作用。
好吧,如果我使用这样的东西:
\1\2\3\4\5 123.123.123.123\7\8\9\10\11
有效。但我不想要一个空间或其他东西。
它也适用于字符串:
\1\2\3\4\5foofoofoo\7\8\9\10\11
啊我正在使用re.sub()进行替换。
有没有办法可以在没有空格的情况下使用它?
谢谢大家
答案 0 :(得分:2)
来自Python Regular Expression operations - re.sub(pattern, repl, string[, count, flags])
除了角色逃脱和 如上所述的反向引用,
\g<name>
将使用子字符串 由名为name的组匹配,as 由(?P<name>...)
语法定义。\g<number>
使用相应的 组号;因此\g<2>
相当于\2
,但不含糊 在诸如\g<2>0
之类的替代品中。\20
将被解释为对...的引用 第20组,而不是对第2组的引用 后跟字面字符'0'。 反向引用\g<0>
替代了 整个子串匹配 RE