Pythonコードで文字列を取得するためのこの正規表現があります:
x1 = re.compile('''((?P<unicode>u?)(?P<c1>'|")(?P<data>.+?)(?P<c2>'|"))''')
data
この正規表現のand c1
,c2
部分を抽出して、置換文字列を作成したい (if c1 == c2
)
次のようなもの:
repl = "u<c1><data><c2>"
これどうやってするの??
それは1行で、または使用して可能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()])
ここで、コメント内の文字列を変更しない方法を判断するのに問題があります。コメントを無視するにはどうすればよいですか??