Regex regexObj = new Regex(
@"([A-Za-z_][A-Za-z_0-9]*)(:)(([-+*%])?(\d*\.?\d*)?)*"
, RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
var subjectString = "a:123+456;b:456;";
Match matchResults = regexObj.Match(subjectString);
while (matchResults.Success) {
for (int i = 1; i < matchResults.Groups.Count; i++) {
Group grp = matchResults.Groups[i];
if (grp.Success) {
Console.WriteLine("st:" + grp.Index + ", len:" + grp.Length + ", val:" + grp.Value);
}
}
matchResults = matchResults.NextMatch();
}
ST:0,LEN:2,VAL:.A
ST:2,LEN:1,VAL ::
ST:6,LEN:0, VAL:
ST:6,LEN:0,VAL:
非常感謝。改變了一個角色,現在它可以工作。順便說一句:當你找回長度爲零的組時,我認爲這隻意味着該可選組沒有成功匹配? – sgtz
我剛剛更新了信息和詳細信息,這些信息和詳細信息可能會給您(可能)更多的見解,並會在此評論中回答您的問題。 –