2014-08-28 90 views
0

我有一个非常简单的字符串,我试图匹配,但似乎无法让它工作。我想在字符串之后匹配一些数字,并且还会发出尾随的%。字符串后匹配数字

encodeTime=10% 

我试过展望未来,但它似乎并没有工作。它只匹配整个字符串。

(?=encodeTime=)[^\s]+ 

有没有一种方法,我只能匹配数字,也发出%后?

+0

您找不到与一系列数字匹配的正则表达式?你看起来了吗? – Servy 2014-08-28 17:30:03

+0

你是什么意思'发射',你的意思是'omit'? – sln 2014-08-28 17:34:55

+0

'encodeTime =(\ d *)'怎么样? – sln 2014-08-28 17:37:55

回答

1

为此目的,您需要lookbehind,而(?=encodeTime=)不是有效的积极lookbehind。

(?<=encodeTime=)\d+ 

DEMO

+0

该死的阿维...你太快了哈哈! – 2014-08-28 17:31:58

1

你并不需要如此简单的东西任何一种环视断言。使用capturing group并使用匹配。Groups属性引用组并打印您的匹配结果。

String s = "encodeTime=10%"; 
Match m = Regex.Match(s, @"encodeTime=(\d+)"); 
if (m.Success) 
    Console.WriteLine(m.Groups[1].Value); //=> "10"