1

文字列があり、その中のいくつかの数字を見つけて置き換えたいと思います。つまり、そこには「v = 324 \ n」が複数回繰り返され、値が異なります。次に、これらすべての数値をn(最も近い整数に丸めて)除算し、新しい文字列として保存します。

現在、解析パッケージを使用しています。

n = 10
s = "this is v = 2342\n and another v = 231\n and some stuff..."
for r in findall("v = {:d}\\n", s):
    print r

これで結果のリストが表示されますが、文字列を変更する方法がわかりません。どうすればいいですか?

4

1 に答える 1

3

一致したパターン(更新する必要がありました)を取得して何らかの方法で計算する関数をre.subに渡すことができます。samples = {:d}\\nこれがデモです:

import re

def sampleRounder(match):
    return str(int(float(match.group(1)))) #base=10

s = "this is v = 2342.2\n and another v = 231.003\n and some stuff..."

print(re.sub("v = ([0-9]*\.[0-9]+|[0-9]+)\\n", sampleRounder, s))
于 2012-11-20T00:54:11.110 に答える