【发布时间】:2012-05-11 07:01:38
【问题描述】:
我有一个单词列表,例如:
l = """abca
bcab
aaba
cccc
cbac
babb
"""
我想找到首尾相同的单词,并且中间的两个字符与首尾不同。
想要的最终结果:
['abca', 'bcab', 'cbac']
我试过了:
re.findall('^(.)..\\1$', l, re.MULTILINE)
但它也会返回所有不需要的单词。 我想以某种方式使用 [^...] ,但我想不通。 有一种方法可以使用集合(从上面的搜索中过滤结果),但我正在寻找一个正则表达式。
有可能吗?
【问题讨论】:
-
".*" 是一个很好的正则表达式,用于查找相同或不同的字符。 :)
-
您有七个答案,所有这些都回答了您的问题(尽管其中两个说“这比正则表达式更好”,我倾向于同意)。你应该接受其中之一。