c++ - 通用正则表达式变音解决方案?

标签 c++ regex qt

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

最佳答案

我无法为您提供适用于所有语言的东西,因为我不知道足够多的语言来判断是否会出现边缘情况。

我的建议:

  1. 按空格分割 (\s+)。
  2. 修剪第 1 步中得到的每个“单词”的开头/结尾处的标点字符(将 ^\p{P}+|\p{P}+$ 替换为空 - QRegularExpression docs 表示它完全支持 Unicode,所以希望这会起作用)

除非您关心在 This is Charles' car 等示例中保留标点符号,否则这应该会大有帮助,而无需删除 it'sMarne 等单词中的标点符号-塞纳河畔

关于c++ - 通用正则表达式变音解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876352/

相关文章:

c++ - 是否可以将 std::unordered_map<Class, Class> 作为 Class 的成员?

c++ - 可变参数模板包扩展

c++ - 使用 libgpiod 如何即时切换请求行的方向?

Javascript 验证最多允许 3 个逗号

python - QMetaObject::invokeMethod 找不到该方法

c++ - 初始化和终止 Qt 应用程序的正确方法?

qt - 如何在Qt5中将动画图标设置为QPushButton?

C++多行输入

c# - 正则表达式与 C# 的工作方式不同吗?

regex - ElasticSearch 和正则表达式查询