我正在尝试编写Excel插件函数。下面是代码。
[ExcelFunction(Description = "Get regular expression matches.")]
public static object RegexExtractAll([ExcelArgument("Input string")]string input,
[ExcelArgument("Regex Pattern")] string pattern)
{
Regex rgx = new Regex(pattern);
MatchCollection matches = rgx.Matches(input);
List<string> result = new List<string>();
foreach (Match match in matches)
{
result.Add(match.Value);
}
return result.ToArray();
}
但是,当我在Excel中使用该函数时,仅找到第一个匹配的值并将其插入到当前选定的单元格中。在我的示例中,应该有两个匹配项writes
和notes
。预期的行为是Excel自动扩大范围并选择两个单元格,并用匹配的结果writes
和notes
填充它们。我怎样才能做到这一点?我将Visual Studio项目放在DropBox中,您可以从https://www.dropbox.com/s/9cr79i3ajxkf09d/Excel-Regex-master.rar?dl=1