0

2 つの文字列を比較し、一致した単語を表示したいと思います。

例えば ​​-

string1 = "猫の足" string2 = "猫の靴"

結果は=「猫」でなければなりません

正規表現でこれを行うにはどうすればよいですか? または、これを行うより良い方法はありますか?

4

2 に答える 2

1

各文字列を空白で分割し、両方をsetに変換します。それらの共通部分には、共通するすべての単語が含まれます。

>>> set("cat feet".split()).intersection(set("cat shoes".split()))
set(['cat'])

このメソッドは単語の順序を気にしません。"cat" は両方の文字列の同じ位置に現れませんが、"feet cat" と "cat shoes" は "cat" を出力します。両方の文字列の同じ位置に存在する単語を見つけたい場合は、分割された文字列を一緒に圧縮して、両方の同じ場所に存在する単語のみを表示できます

>>> [a for a,b in zip("cat feet".split(), "cat shoes".split()) if a == b]
['cat']
>>> [a for a,b in zip("feet cat".split(), "cat shoes".split()) if a == b]
[]
于 2013-08-27T13:38:04.340 に答える
0

正規表現の使用に関して: 正規表現は有限オートマトンと同等であり、これらには有限の状態セットしかないという特性があります。つまり、一種の有限のメモリがあることを意味します。したがって、未知の任意の長さの目的の文字列を含むことはできません。

于 2013-08-27T13:39:14.830 に答える