0

次の入力の値903001を解析するために正規表現を使用しようとしています:343001343491

"contact_value":"903001" other random
"contact_value":"343001" random information
"contact_value":"343491" more random

私はC#で次を使用しましたが、「contact_value」:「903001」を返します

MatchCollection numMatch = Regex.Matches(input, @"contact_value\"":\"".*"\""");

前もって感謝します

4

3 に答える 3

1

正規表現は次のように簡単です

@"\d+"
于 2013-07-25T20:42:17.973 に答える
0

@文字列 (@"string" など) で使用する場合、エスケープ文字は処理されません。これらの文字列では、二重引用符を表す""代わりに使用します。\"この正規表現を試してください:

var regex = @"contact_value"":""(\d+)"""
于 2013-07-25T20:54:28.370 に答える
0

次のようなものを試してください:

string input = "\"contact_value\":\"1234567890\"" ;
Regex rx = new Regex( @"^\s*""contact_value""\s*:\s*""(?<value>\d+)""\s*$" ) ;
Match m = rx.Match( input ) ;
if ( !m.Success )
{
    Console.WriteLine("Invalid");
}
else
{
    string value = m.Groups["value"].Value ;
    int n = int.Parse(value) ;
    Console.WriteLine( "The contact_value is {0}",n) ;
}

[そして、正規表現の使い方を読んでください]

于 2013-07-25T20:58:59.420 に答える