从字符串中删除数字

时间:2012-09-20 12:34:25

标签: c# regex sharepoint-2010 listitem

当我从SharePoint 2010列表中的“作者”列中获取列表值时,会显示以下内容:

2;#SP10Setup

现在创建该特定列表项的用户是“SP10Setup”,现在有一种简单的方法可以在SP10Setup的开头删除“2;#”而不影响“SP10Setup”中的数字吗?

我有一种方法,目前正在剥离所有数字

//method to strip out unnecessary digits
public static string RemoveDigits(string key)
{

return Regex.Replace(key, @"\d", "");
}

这是我获取特定列表项值的方式:

string author = listItem["Author"].ToString();

这是我删除不需要的数字和字符的方法:

//calling the RemoveCharacter method
string noDigitsAuthor = RemoveDigits(author);
string cleanedupAuthor = noDigitsAuthor.Replace(";", "").Replace("#", "");

我从中获得的结果是“SPSetup”,但理想情况下我希望结果为“SP10Setup”。

实现这一目标的最快捷,最简单的方法是什么......

先谢谢

4 个答案:

答案 0 :(得分:3)

你不应该自己做。 使用SPFieldLookupValue

String author = "2;#SP10Setup";
SPFieldLookupValue lookup = new SPFieldLookupValue(author);
string cleanedupAuthor = lookup.LookupValue;
int authorId = lookup.LookupId;

所以你将拥有:

cleanedupAuthor = "SP10Setup"
authorId = 2

答案 1 :(得分:1)

使用像^\d*;#这样的正则表达式。 ^匹配字符串的开头,\d*表示匹配零个或多个数字,;#是文字。

答案 2 :(得分:0)

答案 3 :(得分:0)

第一个'';'并且'#'不是数字。但你可以在Removing text in string using Regex

处获取战利品