0

SharePoint 2010のリストの[作成者]列からリスト値を取得すると、次のように表示されます。

2;#SP10Setup

その特定のリストアイテムを作成したユーザーは「SP10Setup」でしたが、「SP10Setup」の数字に影響を与えることなく、SP10Setupの先頭にある「2;#」を削除する簡単な方法はありますか?

現在、すべての桁を削除しているメソッドがあります

//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*;#ます。^文字列の先頭に一致し、0\d*桁以上に一致し;#、リテラルであると言います。

于 2012-09-20T12:38:06.553 に答える
0

最初のアル';' および「#」は数字ではありません。しかし、正規表現を使用して文字列内のテキストを削除することで略奪することができます

于 2012-09-20T12:39:13.397 に答える