私のような単語のリスト持っているのリストの中から単語のペアを見つけるために正規表現を使用して:、私はこのリストの中から単語のペアを見つけたい言葉
l = """abc
dfg
hij
jih
gfd
cba
cbd
jip
gfe
jiw
cbw"""
をので、最初の単語がされ :
.(.)(.)
そして、2番目の単語は、次のとおりです。
\2\1.
だから、\ 1、\ 2は、最初のワット内の文字を参照してください。 ord。 (... findAllのが唯一の非重複の結果を返すため)
re.findall('(^.(?P<A>.)(?P<B>.)$)(?=.*(^(?P=B)(?P=A).$))', l, re.DOTALL | re.MULTILINE)
しかし、この検索は、ペアの一部だけを返します。私が思い付くことができ
最高の正規表現です。 次に、正のlookbehindアサーションを使用することを考えましたが、固定長の文字列でのみ使用できます。
正規表現でこれを行う方法はありますか?
例だけではなく、単語のペアの関係を単語で説明できますか?私はあなたがある精度を失ったかもしれないと思う。図のように、言葉は常に正確に3文字の長さですか? –
サンプルデータでは、 'abc'は' cba'、 'cbd'、または' cbw'と対になります。あなたは好みがありますか?あるいは、それらのすべてを手に入れたいですか? –
@Alan:明らかに、彼はそれらのすべてを手に入れたいと思います。そうしないと、正規表現のアプローチが有効になります。 –