2017-07-10 22 views
0

自分のプロセスに役立つRegExを作成したいと思います。私はFBでfAとで==> 2と3があるどのように多くの単語を見たい:私は、テキスト一致かどうかが含まれている2かの分野、例えば2つの文字列フィールドに一致するPython RegEx

fA="John Cohen" and fB="Jackie Cohen SRL" 

ファーストを参照する必要があります。場合によっては、fAまたはfBには1語しかないので、fA = fBかどうかを確認する必要があります

2番目:fBがfBに含まれているかどうかを確認する必要があります。

詳細情報が必要な場合はお知らせください。

+0

Regexは、あなたが達成したいことのための適切なツールではありません。あなたは今まで何を試していますか、どのような問題が発生しましたか? –

+0

こんにちは、私はPythonが初めてです。 VBAではRegExを使用しましたが、Pythonでは使用しませんでした。したがって、私は新しい言語であるように、助けが必要です。現在、Selenium、Django、Bootstrapを扱っています。彼らはそれを行う正しいモジュールではありません....あなたの答えに感謝します。 – Cohen

答えて

0

正規表現は、あなたが望むものに適したツールではありません。

文字列を分割して単語のリストを表示し、setsを作成することから始めます。

次に、一般的な要素や相違点などを簡単かつ迅速に取得できます。すべての操作については、ドキュメントを参照してください。

あなたが欲しいものの中には、この方法を実現することができます。

fA="John Cohen" 
fB="Jackie Cohen SRL" 

set_A = set(fA.split()) 
# {'Cohen', 'John'} 
set_B = set(fB.split()) 
# {'Cohen', 'Jackie', 'SRL'} 

if len(set_A) == 1 and set_A == set_B: 
    print("Both strings are {}".format(fA)) 

# set_A included in (or equal to) set_B? 
if set_A <= set_B: 
    print("{} included in {}".format(set_A, set_B)) 

# common elements 
print(set_A & set_B) 
# {'Cohen'} 

# in set_B but not in set_A 
print(set_B - set_A) 
# {'SRL', 'Jackie'} 

# in set_A or set_B, but not in both 
print(set_A^set_B) 
# {'John', 'SRL', 'Jackie'} 

あなたはこのような一連の要素を印刷することもできます、

print('/'.join(set_A^set_B)) 
# John/SRL/Jackie 

をしかし、順序はランダムになりますのでご注意セットは注文されないので。 また、セットをlist(set_A)のリストにして、必要に応じて並べ替えることもできます。

+0

ティエリー、あなたは本当にロック!ありがとうございました!これは普通のPythonコードですか?reなどの他のモジュールをインストールする必要があります。 – Cohen

+0

インポートするものは何もなく、セットは標準的なデータ構造です。 –

関連する問題