【发布时间】:2016-02-01 23:55:45
【问题描述】:
我想要做的是仅在主题标签符号直接位于字符串之前的字符串中删除主题标签(即#stackoverflow)。这就是我正在做的事情:
var paragraph = "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur " +
"ridiculus mus. Aliquam bibendum egestas tortor et lobortis. Curabitur malesuada " +
"hendrerit volutpat. Aenean commodo finibus faucibus. Sed tincidunt quam eget erat " +
"interdum, non ornare est semper. Aliquam ac orci condimentum, pharetra elit eu, #cursus " +
"felis. Ut risus mi, tincidunt in #condimentum nec, ornare vel enim. Curabitur nunc est, " +
"maximus at ultricies sit #amet, tincidunt eget lectus. Mauris in erat ut lectus varius " +
"hendrerit ut id neque. Fusce ultricies efficitur mauris, ac vestibulum purus bibendum sed. " +
"Nunc a ultricies eros.";
var expression = @"(?<=\s|^)#(\w*[A-Za-z_]+\w*)";
Regex regex = new Regex(expression);
MatchCollection matches = regex.Matches(paragraph);
foreach(Match m in matches)
{
paragraph = paragraph.Replace(m.Groups[0].Value, m.Groups[1].Value);
}
有没有更好的方法将匹配的第一组中的值替换为第二组中的值?
【问题讨论】:
-
投了我一票,不知道为什么。