【发布时间】:2013-03-17 03:44:59
【问题描述】:
我有这个用于在 Python 代码中获取字符串的正则表达式:
x1 = re.compile('''((?P<unicode>u?)(?P<c1>'|")(?P<data>.+?)(?P<c2>'|"))''')
我想提取此正则表达式的data 和c1,c2 部分来制作替换字符串(如果c1 == c2)
比如:
repl = "u<c1><data><c2>"
我该怎么做??
这可能是一行还是使用re.sub?
更新:
我的新代码:
x1 = re.compile('''(?P<unicode>u?)(?P<c>'|")(?P<data>.*?)(?P=c)''')
def repl(match):
if '#' in match.string:
### Confused
return "u%(c)s%(data)s%(c)s" % m.groupdict()
fcode = '\n'.join([re.sub(x1,repl,i) for i in scode.splitlines()])
在这里,我在确定如何不更改 cmets 中的字符串时遇到问题,我该怎么做才能忽略 cmets?
【问题讨论】:
-
@MortenJensen 是的.. 但是如果您打算使用它来回答,请详细说明...
-
我猜你想要的是让代码在 3.3 和 2.x 下工作。也许2to3是一个不错的选择。如果你不反对使用它,我会更新我的解决方案。
-
@Kabie 你好久没更新了,猜你在等我的OK...
-
我在等你更新你的真实问题。