gpt4 book ai didi

python - 使用正则表达式查找具有相同或不同字符的单词

转载 作者:行者123 更新时间:2023-11-28 20:09:38 27 4
gpt4 key购买 nike

我有一个单词列表,例如:

l = """abca
bcab
aaba
cccc
cbac
babb
"""

我想找到第一个和最后一个字符相同,并且中间两个字符与第一个/最后一个字符不同的单词。

期望的最终结果:

['abca', 'bcab', 'cbac']

我试过这个:

re.findall('^(.)..\\1$', l, re.MULTILINE)

但它也会返回所有不需要的词。我想过以某种方式使用 [^...] ,但我无法弄清楚。有一种方法可以使用集合来执行此操作(以过滤上述搜索的结果),但我正在寻找正则表达式。

这可能吗?

最佳答案

编辑:固定使用否定先行断言而不是否定后视断言。阅读@AlanMoore 和@bukzor 解释的评论。

>>> [s for s in l.splitlines() if re.search(r'^(.)(?!\1).(?!\1).\1$', s)]
['abca', 'bcab', 'cbac']

该解决方案使用否定先行断言,这意味着“仅当当前位置后面没有其他内容的匹配项时才匹配当前位置。”现在,看看先行断言 - (?!\1)。所有这一切意味着“仅当当前字符后没有第一个字符时才匹配当前字符。”

关于python - 使用正则表达式查找具有相同或不同字符的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com