寻找句子中缩略语的定义

本文关键字:定义 缩略语 句子 寻找 | 更新日期: 2023-09-27 17:50:53

我正在用Visual studio 2013用c#编写一个示例程序。我有一些逻辑可以找到一个全大写的首字母缩略词,如下所示:

string docStr = "Made at Training And Doctrine (TAD)";
string allUpperRegStr = "''([A-Z]{2,}'')";
Match mUpper = Regex.Match(docStr, allUpperRegStr);
If  (mUpper.Success)
{
    string remWS = mUpper.Value.Trim();
}

所以上面的逻辑找到(TAD)首字母缩略词,我需要的是一些方法来解析这个句子,并找到一个匹配的首字母缩略词的定义,即训练和学说。

寻找句子中缩略语的定义

您应该构造一个新的正则表达式,它看起来类似于(T[a-z]+'sA[a-z]+'sD[a-z]),并且应该能够捕获"Training and Doctrine"。您可能必须考虑定义包含标点符号或其他变体(例如多个空格)的场景,并可能相应地调整正则字符串。

EDIT: 完整解决方案 - EDIT2: 忽略大小写(尚未验证工作)

string docStr = "Made at Training And Doctrine (TAD)";
string allUpperRegStr = "''([A-Z]{2,}'')";
Match mUpper = Regex.Match(docStr, allUpperRegStr);
if (mUpper.Success)
{
    string remWS = mUpper.Value.Trim();
    char [] chars = remWS.toCharArray();
    IEnumerable<string> lowerUpper = from l in chars
                                     where l !='(' && l != ')'
                                     select string.Format("[{0}{1}][a-z]+", Char.ToLower(l), Char.ToUpper(l));
    string regex2 = string.Format("({0})", string.Join("''s", lowerUpper));
    Match mDefinition = Regex.Match(docStr, regex2);
    if (mDefinition.Success)
    {
        string definition = mDefinition.Value.Trim();
    }
}

最新修复包含:

  1. 固定目标正则字符串(最后一个字符也必须后跟[a-z])
  2. 条带'(' &')' from lowerUpper
  3. 工作正则表达式示例

直接使用单词作为正则表达式,如'Training And Doctrine'regex解析器将根据字符串识别模式。