Skip to main content
 首页 » 编程设计

c#之在单个正则表达式中仅选择选择的数字部分

2024年02月01日28del

好吧,我不知道如何准确解释,但我有这段文字:

abc=0;def=2;abc=1;ghi=4;jkl=2

我想做的是选择 abc=0 和 abc=1 但排除 abc 部分...

我的正则表达式是:abc=\d+,但它包括 abc 部分...

我读了something关于这个,答案是这样的:(?!abc=)\d+ 但是它选择了文本中的所有数字...

那么,有人可以帮我解决这个问题吗?

提前致谢。

请您参考如下方法:

如果您的语言支持\K然后你可以使用下面的正则表达式来匹配字符串 abc= 之后的数字,

abc=\K\d+ 

DEMO

或

如果您的语言不支持 \K,请使用正面回顾,

(?<=abc=)\d+ 

DEMO

C# 代码是,

{ 
string str = "abc=0;def=2;abc=1;ghi=4;jkl=2"; 
Regex rgx = new Regex(@"(?<=abc=)\d+"); 
 foreach (Match m in rgx.Matches(str)) 
Console.WriteLine(m.Value); 
} 

IDEONE

解释:

  • (?<=abc=)正后视实际上将匹配标记设置在字符串 abc= 之后.
  • \d+匹配一位或多位数字。