寻找句子中缩略语的定义
本文关键字:定义 缩略语 句子 寻找 | 更新日期: 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();
}
}
最新修复包含:
- 固定目标正则字符串(最后一个字符也必须后跟
[a-z]
) - 条带'(' &')' from
lowerUpper
- 工作正则表达式示例
直接使用单词作为正则表达式,如'Training And Doctrine'regex解析器将根据字符串识别模式。