0

次の文字列内の整数値を探しています。

"値="5412304756756756756756792114343986"

C# を使用してこれを行うにはどうすればよいですか?

4

5 に答える 5

4

正規表現を使用して、文字列内の数値を見つけることができます。

var resultString = Regex.Match(subjectString, @"\d+").Value;

負の値の場合:

var resultString = Regex.Match(yourString, @"(|-)\d+").Value;
于 2012-11-12T11:33:32.847 に答える
2

等号を探すことができます...

string yourString = "value=5412304756756756756756792114343986";
string integerPart = yourString.Split('=')[1];
于 2012-11-12T11:32:45.923 に答える
2

char.IsDigi t のようなものを使用できます。

string str = "value=5412304756756756756756792114343986";
List<char> justDigits = new List<char>();
foreach(char c in str)
{
    if (char.IsDigit(c))
        justDigits.Add(c);
}

string intValues = new string(justDigits.ToArray());

または短いバージョン

string intValues = new string(str.Where(char.IsDigit).ToArray());
于 2012-11-12T11:35:46.613 に答える
2

使用できますRegex

int IntVal = Int32.Parse(Regex.Match(yourString, @"(|-)\d+").Value);

これは負の数にも一致します。また、文字列内のすべての文字を繰り返し処理し、id が数値であることを確認することもできますが、ボトルネックになる可能性があるため、実際には望ましい解決策ではありません。

編集:入力番号が long よりも大きくなっています。このような数値の場合、フレームワーク 4.0 以降ではBigIntegerを使用できます。

于 2012-11-12T11:37:30.267 に答える
1
        Match match = new Regex("[0-9]+").Match("value=\"5412304756756756756756792114343986\"");
        while(match.Success)
        {
            // Do something
            match = match.NextMatch();
        }
于 2012-11-12T11:34:50.847 に答える