- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
public static List<string> GetWords(string text, out List<int> index)
{
MatchCollection matches = Regex.Matches(text, @"[\w.]+|[\W]+");
List<string> m = new List<string>();
index = new List<int>();
foreach (Match match in matches)
{
if (match.Value.IndexOf('.', match.Value.Length - 1) != -1 && !isPart(match.Value) && match.Value.Length > 1)
{
string str = match.Value.Remove(match.Value.Length - 1, 1);
m.Add(str);
m.Add(".");
}
else
{
m.Add(match.Value);
index.Add(match.Index);
}
}
return m;
}
Нужно подать текст, который будет разбит на <Word> ... </Word>. При этом нужно отслеживать сокращения типа "г.", "т.д.", "др" и т.д. Но возникает проблема, слова типа "привет." будут также рассматриваться как единое целое, поэтому приходиться проверять, сокращение это или нет в строках 8-13, если есть другой (оптимальный) способ, то был бы благодарен )