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 回答