. NET String.Split не работает с нелатинскими символами - PullRequest
0 голосов
/ 19 июня 2020

Попытка разбить абзацы на предложения: мой текст состоит из букв латинского и армянского алфавита; когда я вызываю String.Split, разделение находится в неправильной позиции. Я пытаюсь разделить на точки / вопросительные знаки / восклицательные знаки. Может быть, это ошибка в. NET? Или я что-то пропустил?

Ссылка на DotNetFiddle . Если вы запустите этот код, вы увидите, что первое предложение: «Храм Гарни (армянский: Գառնիի տաճար» , что неверно, это только часть первого предложения .

    string combinedParas = @"The Temple of Garni (Armenian: Գառնիի տաճար, Gaṙnii tačar, [ˈgɑrnii ˈtɑtʃɑʁ])[a] is the only standing Greco-Roman colonnaded building in Armenia and the former Soviet Union. Built in the Ionic order in the village of Garni, Armenia, it is the best-known structure and symbol of pre-Christian Armenia.";

    var sentences = combinedParas.Split(new[] { ',', '?', '!' }, StringSplitOptions.RemoveEmptyEntries);
    foreach(var s in sentences) {
        Console.WriteLine(s);

В основном спрашивают из любопытства; я уже перешел и написал свою собственную функцию разделения, чтобы справиться с этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...