通用正则表达式解决方案?

时间:2016-01-19 12:03:24

标签: c++ regex qt

是否有一个通用(非)单词正则表达式,涵盖了地球上所有字符的突变?我正在开发一个应该处理所有语言的应用程序。 从技术上讲,我想用文字来分割句子。用非字符(\ W)拆分它们也会被'ä'拆分。 static workaround不是一个选项,因为并且明确地涵盖了这个世界上的所有突变(éçḮñ以及数千个)是不可能的。

1 个答案:

答案 0 :(得分:2)

我不能给你一些适用于所有语言的东西,因为我不知道足够的语言来判断是否会有边缘情况。

我的建议:

  1. 拆分空格(\s+)。
  2. 修剪您在步骤1中获得的每个“单词”的开头/结尾的标点字符(将^\p{P}+|\p{P}+$替换为空 - QRegularExpression docs表示它完全支持Unicode,因此希望这可行)
  3. 除非您关注在This is Charles' car等示例中保留标点符号,否则在不删除it'sMarne-sur-Seine等字词中的标点符号的情况下,这应该会有很长的路要走。