Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python查找单词中所有可能重叠的前缀_Python_Regex_Overlapping Matches - Fatal编程技术网

使用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我编辑了这个问题,添加更多的详细信息,这个解决方案不会严重影响性能吗?这取决于前缀列表的长度;正则表达式很容易变慢。