使用python查找单词中所有可能的重叠前缀

时间:2013-08-03 13:34:27

标签: python regex overlapping-matches

许多自然语言都有前缀,可以为单词添加一些含义。 例如:anti用于防病毒,co用于协调员,counter用于对方

检测stem需要将这些前缀分开。假设有一个特定语言的前缀列表:

prefix_list = ['c', 'ca', 'ata', 'de']

如何在单词"catastrophic"

中加工所有可能的重叠事件

结果应该是: ['c', 'ca']

试验:

  • |字符不支持重叠
  • Otto's solution在单词
  • 的开头没有重叠
  • 我试图在之前的解决方案中反向断言,但是后视需要固定宽度模式

注释:

  • ata不能成为结果,因为该字词不以ata
  • 开头

1 个答案:

答案 0 :(得分:1)

不要使用正则表达式。改为使用列表理解:

[prefix for prefix in prefix_list if word.startswith(prefix)]

这将创建prefix_listword前缀的所有条目的列表。