2017-04-12 33 views
1
String "Ap: SV, Classe Store Stat: AC," 

我用负环视这样我就可以将字符串统计后抢AC:我怎么不包括捕获组正则表达式的字符串的一部分

(?!Stat:)(\s\D\D), 

但它抓住

  1. SV,
  2. 交流,

我只想捕获只需交流。我该怎么做呢。我“米还算是新手,当谈到正则表达式

〜w^

+0

尝试['(?<= Stat:\ s)\ D \ D,'](https://regex101.com/r/SHB3tj/1)。你的正规口味是什么?顺便说一句,'\ D'匹配任何非数字的字符,也许'[a-zA-Z] {2}'而不是'\ D \ D'会更好。 –

+0

它的工作。我目前正在使用csharp。 <?是什么意思?我使用http://www.regextester.com/来测试我的正则表达式,但我记得看到?<=但它不适用于该网站,但当我在我的代码中测试它的工作。 – skinnyWill

+0

我忘了谢谢wiktor stribizew – skinnyWill

回答

1

在.NET正则表达式,你可以使用无限的回顾后,或捕捉得到你需要的东西:

var m = Regex.Match(s, @"\bStat:\s*(\D\D,)"); 
if (m.Success) 
{ 
    Console.WriteLine(m.Groups[1].Value); 
} 

this regex demo

来获取值进入m.Value直,一个回顾后,可以使用这样的:

var m = Regex.Match(s, @"(?<=\bStat:\s*)\D\D,"); 
if (m.Success) 
{ 
    Console.WriteLine(m.Value); 
} 

查看regex demo

捕获看起来更高效和多功能的一般。

注意:\b是一个字的边界,如果你不在意匹配Stats作为一个整体的话,删除它。

相关问题