0

から値 2 を抽出するにはどうすればよいですかstring pid = {id=2}

私のコードは次のようになります

string pidnew= pid.Substring(3,5)

エラーが表示されます。何か問題がありますか?

4

3 に答える 3

2

のような文字列から個々の値を取得するにはstring pid = "{id=2, genderid=5, stateid=4}"、次のメソッドを使用できます。

public string GetValue(string idPart, string test)
{
    var escIdPart = Regex.Escape(idPart);
    var pattern = string.Format("(?<=[\\{{\\s,]{0}\\s*=\\s*)\\d+", escIdPart);
    var result = default(string);
    var match = Regex.Match(test, pattern, RegexOptions.IgnoreCase);
    if (match.Success)
    {
        result = match.Value;
    }
    return result;
}

...

var pid = "{id=2, genderid=5, stateid=4}";

var id = GetValue("id", pid); // returns "2"
var genderid = GetValue("genderid", pid); // returns "5"
var stateid = GetValue("stateid", pid); // returns "4"
于 2013-10-25T17:26:47.910 に答える
1

数字が1つしかない場合は、それを正規表現できます

string pidnew = Regex.Match(pid, @"\d+").Value;

場所を気にする必要はありません

stateid で一致させたい場合:

string pidnew = Regex.Match(pid, @"(?<=stateid=)\d+",RegexOptions.IgnoreCase).Value;
于 2013-10-25T17:20:36.020 に答える