我需要替换多个值,正则表达式似乎是正确的工具。 我面临的问题是我需要离开匹配字符串的中间部分。
BasicUtil::EpgToInnerEpgString(sTmpAbc)
BasicUtil::EpgToInnerEpgOID(sTmpXyz)
BasicUtil::EpgToInnerEpgBool(sTmpAbc)
BasicUtil::EpgToInnerEpgInt(sTmpAsd)
BasicUtil::EpgToInnerEpgLong(sTmpAxx)
BasicUtil::EpgToInnerEpgShort(sTmpAny)
我选择匹配整个字符串,我想知道是否有办法忽略中间匹配
R2 = re.compile("(BasicUtil::(\w+)\()(\w+)(\))", re.MULTILINE)
R2.subn('', slongString)
这是预期的结果
sTmpAbc sTmpXyz sTmpAbc sTmpAsd sTmpAxx sTmpAny
知道如何继续吗?
感谢PJProudhon这里是实际代码:
R1 = re.compile("(BasicUtil::(\w+)\()(\w+)(\))", re.MULTILINE)
print(R1.sub('\\3', s))
OR
R2 = re.compile("BasicUtil::\w+\((\w+)\)", re.MULTILINE)
print(R2.sub('\\1', s))