【问题标题】:Generic regex umlaut solution?通用正则表达式变音符号解决方案?
【发布时间】:2016-01-19 12:03:23
【问题描述】:

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

【问题讨论】:

  • 那么,它是 JavaScript 吗?使用 XRegExp [^\pL]\PL
  • 你为什么不按\s分割?你能提供输入和所需的输出吗?
  • 所以您想将it's 拆分为its?分割空格和非连接标点符号不是很有意义吗?无论如何,您肯定需要告诉我们您使用的是哪个正则表达式引擎。
  • 不是 C++/Qt 应用程序。我想索引单词。因此,由于标点符号,按空格分割也不是最佳选择。但是一组静态分隔符确实是一种更好的方法。这几乎解决了我的问题,谢谢,但不是 SO 问题。
  • 您的意思是“元音变音”(特别是德语字符 ä、ö‚ 和 ü 中的标记)还是任何重音符号(即 ̈ 、̂ 等)或任何重音符号(Ö、ê , ñ 等)?

标签: c++ regex qt


【解决方案1】:

我无法为您提供适用于所有语言的东西,因为我知道的语言不够多,无法判断是否存在极端情况。

我的建议:

  1. 在空白处拆分 (\s+)。
  2. 从您在第 1 步中获得的每个“单词”的开头/结尾修剪标点符号(将 ^\p{P}+|\p{P}+$ 替换为空 - QRegularExpression docs 表示它完全支持 Unicode,因此希望这会起作用)

除非您关心在 This is Charles' car 等示例中保留标点符号,否则在不删除 it'sMarne-sur-Seine 等单词中的标点符号的情况下,这应该会大有帮助。

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 2023-03-14
    • 2014-03-27
    • 1970-01-01
    • 2011-08-13
    • 2010-10-25
    • 1970-01-01
    • 2017-06-17
    相关资源
    最近更新 更多