【问题标题】:C# - Divide the sentence into tokens [duplicate]C# - 将句子分成标记[重复]
【发布时间】:2020-02-26 19:49:54
【问题描述】:

将句子拆分为标记。例如,这对于搜索引擎很有用。

有几个规则:

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

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

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

Suzie Smith-Hopper test--hyphens => Suzie,Smith-Hopper,test,hyphens.

我的尝试:

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

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

但它对我不起作用

【问题讨论】:

  • 不是链接的欺骗,它不处理引号或连字符。但太宽泛了。

标签: c# .net regex


【解决方案1】:

以下当然不是有效的,但它会起作用:

步骤 1. 解析文件(或输入字符串),并用某些字符(如“+”)替换用引号括起来的短语中的所有空格。至于多连字符,请用空格(' ')替换它们。

第 2 步。按空格 ' ' 分割。任何“可标记”的物品都将是一个标记……我认为。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多