使用python查找单词中所有可能重叠的前缀
许多自然语言都有前缀,可以给一个词增加一些含义。 例如:使用python查找单词中所有可能重叠的前缀,python,regex,overlapping-matches,Python,Regex,Overlapping Matches,许多自然语言都有前缀,可以给一个词增加一些含义。 例如:anti用于防病毒,co用于协调器,计数器用于对应方 检测词干需要将这些前缀分开。假设有一个特定语言的前缀列表: prefix\u list=['c','ca','ata','de'] 如何处理一个单词中所有可能出现的重叠现象“灾难性” 结果应该是: ['c','ca'] 审判: |字符不支持重叠 这个词的开头没有重叠吗 在前面的解决方案中,我尝试向后断言,但向后看需要固定宽度的模式 注: ata不能作为结果,因为单词不是以ata 不
anti
用于防病毒,co
用于协调器,计数器
用于对应方
检测词干
需要将这些前缀分开。假设有一个特定语言的前缀列表:
prefix\u list=['c','ca','ata','de']
如何处理一个单词中所有可能出现的重叠现象“灾难性”
结果应该是:
['c','ca']
审判:
字符不支持重叠|
- 这个词的开头没有重叠吗
- 在前面的解决方案中,我尝试向后断言,但向后看需要固定宽度的模式
不能作为结果,因为单词不是以ata
ata
- 不要使用正则表达式。改为使用列表:
[prefix for prefix in prefix_list if word.startswith(prefix)]
这将创建一个列表,其中包含
prefix_list
中作为word
前缀的所有条目。看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是,包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、堆栈跟踪、编译器错误——任何适用的)。您提供的详细信息越多,您可能收到的答案就越多。为什么结果中没有ata
?@MartijnPieters我编辑了这个问题,添加更多的详细信息,这个解决方案不会严重影响性能吗?这取决于前缀列表的长度;正则表达式很容易变慢。