【发布时间】:2014-04-30 17:35:53
【问题描述】:
我正在使用 .NET 的 Regex 从字符串中捕获信息。我有一个包含在条形字符中的数字模式,我想挑选出这些数字。这是我的代码:
string testStr = "|12||13||14|";
var testMatch = Regex.Match(testStr, @"^(?:\|([0-9]+)\|)+$");
但是,testMatch.Captures 只有 1 个条目,等于整个字符串。为什么它没有 3 个条目,12、13 和 14?我错过了什么?
【问题讨论】:
-
嗯。我原以为它已经捕获了
14。无论如何,一个被捕获的群体通常会捕获一件事;无论如何,您可以将Matches与(?<=\|)[0-9]+(?=\|)一起使用。或者只是匹配[0-9]+。或者将|与StringSplitOptions.RemoveEmptyEntries分开(对吗?)。