如何使用c#.net查找字符串中的最后一个字母

时间:2015-03-25 08:23:35

标签: c# .net regex string preg-match

我想找出c#.net中字符串中的最后一个字母。例如,我有1234B0097D576676,我需要找到D。与0103D0001Y000001相同,结果应为Y

要做到这一点,PHP preg_match('/[^a-zA-Z]+$/', $scanned_code, $match);中有一个函数。这将返回字符串中最后一个出现的字符。我们怎么能在c#.net中做同样的事情呢?提前谢谢。

2 个答案:

答案 0 :(得分:4)

我会选择一个linq灵魂

string chars = "1234B0097D576676";
char Result = chars.LastOrDefault(x => Char.IsLetter(x));

答案 1 :(得分:0)

您可以在带有[a-z](?=[^a-z]*$)选项的正则表达式Ignorecase中使用正向前瞻来获取最后一个字母。

var txt1 = "0103D0001Y000001";
var regex1 = new Regex(@"[a-z](?=[^a-z]*$)", RegexOptions.IgnoreCase  | RegexOptions.CultureInvariant);
var c1 = regex1.Matches(txt1).Cast<Match>().Select(d => d.Value.Trim()).ToList();

输出:

enter image description here