无论语言方向性如何,LTR和RTL字符串分割

时间:2017-06-07 13:11:42

标签: c# string right-to-left

长话短说,我有以下文字的文字:

const string example1 = "good בוקר טוב morning";

我正在尝试将上述文本拆分为4个单词(在我的情况下为令牌)进行处理。无论采取什么方法,我仍然会以错误的顺序得到2个希伯来语。按顺序我的意思是显示顺序而不是逻辑顺序。

对{strong> example1

使用String.Split

返回

  • בוקר
  • טוב
  • 上午

在上面你可能会注意到2个希伯来语单词现在位于错误的(显示)位置

预期

  • טוב
  • בוקר
  • 上午

我尝试过使用 Regex.Split ,强制使用不变文化,甚至添加Unicode字符,以便按照LTR显示顺序进行拆分。

虽然我并不热衷于通过 Regex 来解决这个问题,但我正在寻找一种解决此类问题的通用方法,这种方法在其他RTL语言中保持原样并说阿拉伯语。

在发布此帖之前,我已检查过以下内容,以防其他人将其标记为重复。

Parsing through Arabic / RTL text from left to right   - 假设开发人员知道RTL字的位置。我没有使用分号作为单词分隔符。它可以是任何文化特定的角色。此外,添加不可见标记会导致将来的字符串相等性比较失败。

c# split and revers sentence with two languages   - 修改了字符顺序。我希望保持原样。

任何能让我朝着正确方向前进的建议或建议都会受到赞赏。

0 个答案:

没有答案