C#正则表达式操作中使用LINQ

问题场景

在博客园闪存内容中提取Tag,Tag要放在中括号之间并且出现在闪存内容的开头。

比如:[程序员][代码]博客园 - 程序员的网上家园,代码改变世界

提取出来的Tag应该是:[程序员]、[代码]

正则表达式

Regex _regexTag = new Regex(@"^(\[[^\]]+\])+", RegexOptions.Compiled);

通过LINQ从正则表达式的捕获中提取出Tag

public IList<string> GetTags(string ingContent)
{
return (from Capture c in _regexTag.Match(ingContent).Groups[1].Captures
select c.Value).ToList();
}

注:即使没有捕获到,_regexTag.Match(ingContent).Groups[1].Captures也不会引发异常。

LINQ使用感言

LINQ就像代码世界的小天使,给程序员带来了更多的轻松与快乐!

posted @ 2012-01-06 13:34  dudu  阅读(4431)  评论(6编辑  收藏  举报