C++ 通用正则表达式umlaut解决方案?
是否有一个通用(非)单词regex覆盖了这个地球上所有字符的突变?我正在开发一个可以处理所有语言的应用程序。C++ 通用正则表达式umlaut解决方案?,c++,regex,qt,C++,Regex,Qt,是否有一个通用(非)单词regex覆盖了这个地球上所有字符的突变?我正在开发一个可以处理所有语言的应用程序。 从技术上讲,我想用词来划分句子。按非单词字符拆分它们(\W)也按“ä”拆分。A不是一个选项,因为它明确地涵盖了这个世界上的所有突变(ççḮ(还有数千人)是不可能的 我不能给你一些适用于所有语言的东西,因为我不知道足够的语言来判断是否会有边缘案例 我的建议是: 按空格分割(\s+) 从步骤1中得到的每个“单词”的开始/结束处修剪标点字符(将^\p{p}+|\p{p}+$替换为零-据说它完全
从技术上讲,我想用词来划分句子。按非单词字符拆分它们(\W)也按“ä”拆分。A不是一个选项,因为它明确地涵盖了这个世界上的所有突变(ççḮ(还有数千人)是不可能的 我不能给你一些适用于所有语言的东西,因为我不知道足够的语言来判断是否会有边缘案例 我的建议是:
\s+
)^\p{p}+|\p{p}+$
替换为零-据说它完全支持Unicode,所以希望这能起作用)除非您关心在示例中保留标点符号,如
这是Charles的车
,否则在这是
或塞纳河沿岸的马赛
这样的单词中不删除标点符号,这应该会有很大的帮助?使用XRegExp[^\pL]
或\pL
。为什么不按\s
拆分?你能提供输入和期望的输出吗?那么你想把它的
分为它
和s
?将空格和非连接标点分开难道没有意义吗?无论如何,您肯定需要告诉我们您使用的是哪个正则表达式引擎。不,这是一个C++/Qt应用程序。我想索引单词。因此,由于标点符号的存在,按空格分割也不是最优的。但是一组静态的分离器确实是一种更好的方法。这几乎解决了我的问题,谢谢,但不是问题所在。你是指“umlaut”(特别是德语字符ä、ö和ü中的标记)还是任何重音(如̂、̂等)或任何重音字符(Ö、ê、ñ等)?