当我从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”。
实现这一目标的最快捷,最简单的方法是什么......
先谢谢
答案 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)
如果您的字符串长度始终相同,则可以使用http://msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.71%29.aspx enter link description here
答案 3 :(得分:0)
第一个'';'并且'#'不是数字。但你可以在Removing text in string using Regex
处获取战利品