【发布时间】:2019-08-29 11:03:40
【问题描述】:
这是测试。我希望最后一组是".png",但这个模式会返回""。
var inputStr = @"C:\path\to\dir\[yyyy-MM-dd_HH-mm].png";
var pattern = @"(.*?)\[(.*?)\](.*?)";
var regex = new Regex(pattern);
var match = regex.Match(inputStr);
var thirdGroupValue = match.Groups[3].Value;
// ✓ EXPECTED: ".png"
// ✗ CURRENT: ""
第一组和第二组工作正常。
【问题讨论】:
-
那是因为最后一组中的
?。你的模式有零个或多个字母并且是懒惰的(作为回报的第一部分匹配)。那部分只是一个空字符串