首页 > 解决方案 > 正则表达式仅选择具有一致标题的字符串中的最后一个单词

问题描述

我正在解析电子邮件的文本正文,并正在寻找一个表达式的帮助,该表达式将针对标题后面的字符串的最后一个单词。标题将始终是成员名称:但其后的字符串可能会有所不同。我想忽略除最后一个词之外的所有内容,这将是名字。

例如:

成员名称:JAMES,MAJ LABRON 将针对 LABRON 成员名称:BARKLEY,CHARLES 将针对 CHARLES 成员名称:JORDAN,1ST LT MICHAEL 将针对 MICHAEL

标签: c#regex

解决方案


正则表达式解决方案:

var str = "JAMES, MAJ LABRON";
var rgx = new Regex(@"^.+ (\w+)$");
Console.WriteLine(rgx.IsMatch(str));

解释:

^ - 字符串开始

.+ - 一个或多个字符

\w+ - 匹配单个单词

笔记:

使用()around\w+将对匹配的单词进行分组,以防您稍后需要在 C# 中使用它。

如果您想要一个非正则表达式解决方案,您可以简单地string.Split()获取字符串并获取最后一个单词。

var last = str.Split(' ').Last();

推荐阅读