0

私が達成しようとしているのは、Python正規表現を使用して文字列を変数(変数の内容)に置き換えることです。一致した式の一部を保持する必要があるため、\1and\3グループ一致引数を使用します。

私の正規表現/サブは次のようになります:

pattern = "\1" + id + "\3" \b
out = re.sub(r'(;11=)(\w+)(;)',r'%s' % pattern, line)

起こっているように見えるのは、出力に追加さ\1\3ないことです。

私はまた、置換式でこれを試しました:

r'\1%s\3'%orderid

しかし、私は同様の結果を得ました。これを修正する可能性のある提案はありますか?

4

2 に答える 2

0

これはうまくいきません:

pattern = "\1" + id + "\3"
# ...
r'%s' % pattern

プレフィックスは、リテラルのr解釈方法にのみ影響します。したがって、とはそのまま解釈されることr'%s'を意味しますが、それは .なしで解釈されるのと同じ方法です。一方、 には未加工のリテラルとがあるため、 に到達する前にすでにコントロール A とコントロール C になっています。%srpattern"\1""\3"%

あなたが望むものは:

pattern = r"\1" + id + r"\3"
# ...
'%s' % pattern

%ただし、書式設定はまったく必要ありません。それ自体を使用するだけでpattern、まったく同じことが得られます。

于 2013-10-08T20:59:21.083 に答える