用Re.Findall提取长度为2的所有字符串

时间:2017-02-26 22:08:57

标签: python regex

我想从带有正则表达式的文本中提取所有双字母字符串,例如:

just a test

会得到我ju, us, st, te, es, st

我尝试使用:re.findall(r'\w{2}',text),但它只将字词分成两个字母的字符串并给我ju, st, te, st

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我将正则表达式解决方案留给了正则表达式专家(我不是这样),因为它可以在没有正则表达式的情况下完成,只需要一行列表理解:

s = "just a test"
result = ["".join(x)  for w in s.split() if len(w)>1 for x in zip(w,w[1:])]

print(result)

结果:

['ju', 'us', 'st', 'te', 'es', 'st']

只需拆分单词,过滤少于2个字符的单词,然后使用zip

将它们与移位后的副本进行交错

只有在没有标点符号的情况下才有效。