【发布时间】:2011-05-28 04:58:05
【问题描述】:
我得到一个可能看起来像这样的字符串
"myFunc('element','node','elementVersion','ext',12,0,0)"
我目前正在检查有效性,它工作正常
myFunc\((.+?)\,(.+?)\,(.+?)\,(.+?)\,(.+?)\,(.+?)\,(.+?)\)
现在我想替换第三个参数中的任何字符串。 不幸的是,我不能只在第三个位置的任何子字符串上使用 stringreplace,因为相同的“子字符串”可能在该字符串的其他任何地方。
有了这个和一个 re.findall,
myFunc\(.+?\,.+?\,(.+?)\,.+?\,.+?\,.+?\,.+?\)
我能够在第三个位置获取子字符串的内容,但是 re.sub 不会替换字符串它只是返回我想要替换的字符串:/
这是我的代码
myRe = re.compile(r"myFunc\(.+?\,.+?\,(.+?)\,.+?\,.+?\,.+?\,.+?\)")
val = "myFunc('element','node','elementVersion','ext',12,0,0)"
print myRe.findall(val)
print myRe.sub("noVersion",val)
知道我错过了什么吗?
谢谢! 赛博
【问题讨论】:
-
这里的各种答案让我相信 Pythonic 对 Perl 的 TIMTOWTDI 座右铭的反抗有点被误导了。 :)