0

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

2;#SP10设置

现在创建该特定列表项的用户是“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

4 回答 4

3

你不应该自己做。使用SPFieldLookupValue

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

所以你将拥有:

cleanedupAuthor = "SP10Setup"
authorId = 2
于 2012-09-20T12:38:14.947 回答
1

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

于 2012-09-20T12:38:06.553 回答
0

如果您的字符串总是相同的长度,您可以使用http://msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.71%29.aspx在此处输入链接描述

于 2012-09-20T12:39:04.740 回答
0

第一个';' 和 '#' 不是数字。但是您可以在使用正则表达式删除字符串中的文本时获得战利品

于 2012-09-20T12:39:13.397 回答