3

私の正規表現は文中の 2 つの単語に一致する必要がありますが、2 番目の単語だけを置き換える必要があります。最初の単語は、実際には、2 番目の単語の代替が取得される辞書へのキーです。Perl では次のようになります。

$sentence = "Tom's boat is blue";
my %mydict = {}; # some key-pair values for name => color
$sentence =~ s/(\S+)'s boat is (\w+)/$1's boat is actually $mydict{$1}/;
print $sentence;

これはPythonでどのように行うことができますか?

4

1 に答える 1

3

このようなもの:

>>> sentence = "Tom's boat is blue"
>>> mydict = { 'Tom': 'green' }
>>> import re
>>> re.sub("(\S+)'s boat is (\w+)", lambda m: "{}'s boat is actually {}".format(m.group(1), mydict[m.group(1)]), sentence)
"Tom's boat is actually green"
>>> 

ただし、名前付き関数に抽出されたラムダを使用すると見栄えが良くなります。

于 2012-04-05T09:23:22.133 に答える