C#-将句子分成标记

C#-将句子分成标记,c#,.net,regex,C#,.net,Regex,把句子分成几个标记。例如,对于搜索引擎来说,这可能很有用 有几条规则: 同一标记中必须包含多个带引号的单词 这个“巨大的测试”是毫无意义的=>这个巨大的测试,是毫无意义的 连字符的单词也包含在同一标记中。 用多个连字符(破折号)书写的单词,或在开头或结尾有一个连字符的单词,放置在单独的标记中 Suzie Smith Hopper测试--连字符=>Suzie,Smith Hopper,测试,连字符 我的尝试: label.Text = ""; string s = "I like-it 'very

把句子分成几个标记。例如,对于搜索引擎来说,这可能很有用

有几条规则:

同一标记中必须包含多个带引号的单词

这个“巨大的测试”是毫无意义的=>这个巨大的测试,是毫无意义的

连字符的单词也包含在同一标记中。 用多个连字符(破折号)书写的单词,或在开头或结尾有一个连字符的单词,放置在单独的标记中

Suzie Smith Hopper测试--连字符=>Suzie,Smith Hopper,测试,连字符

我的尝试:

label.Text = "";
string s = "I like-it 'very very'";
string[] arr = Regex.Split(s, @"(\s)|(')");

foreach (var item in arr)
{
    label.Text += item + ", ";
}

但它对我不起作用

以下肯定是无效的,但它会起作用:

第一步。解析文件(或输入字符串),并用一些字符(如“+”)替换由引号包围的短语中的所有空格。对于多连字符,请将其替换为空格(“”)

第二步。按空间“”拆分。任何“可标记”的物品都将是一个标记…我认为


第三步。返回,替换所有特殊字符(如上面的“+”),并替换为空格(“”)。数组中的每个项都代表一个tokan。

不是重复的链接,它不处理引号或连字符。但是太宽了。