Попытка разбить абзацы на предложения: мой текст состоит из букв латинского и армянского алфавита; когда я вызываю 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);
В основном спрашивают из любопытства; я уже перешел и написал свою собственную функцию разделения, чтобы справиться с этой проблемой.