I have a list of words such as:
l = """abc
dfg
hij
jih
gfd
cba
cbd
jip
gfe
jiw
cbw"""
我希望你能协助我从这个列表中找到一些词语的配对,因此需要指定第一个单词:
.(.)(.)
第二个单词是:
\2\1.
因此,\1 和 \2 分别指代第一个单词中的字符。
我能想到的最佳正则表达式是:
re.findall('(^.(?P<A>.)(?P<B>.)$)(?=.*(^(?P=B)(?P=A).$))', l, re.DOTALL | re.MULTILINE)
但这个搜索只返回了一些匹配对(因为findall仅返回不重叠的结果...)。然后我想到使用正向零宽断言,但是它们只能用于固定长度的字符串...有没有办法使用正则表达式来解决这个问题?