好吧,我不知道如何准确解释,但我有这段文字:
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+
或
如果您的语言不支持 \K,请使用正面回顾,
(?<=abc=)\d+
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);
}
解释:
-
(?<=abc=)正后视实际上将匹配标记设置在字符串abc=之后. -
\d+匹配一位或多位数字。
