在我支持的 .Net WinForms 应用程序中,有以下正则表达式:
public static String MacroTemplate = @"(~#([^:]+):([^:]+):([^:]*)(?::(.*))?#~)";
我了解其中的大部分内容,所以我知道它匹配一个以 ~# 开头并以 #~ 结尾的字符串,然后包含用冒号分隔的组件。我不明白的是表达式的最后一部分,特别是这部分:
(?::(.*))?
谁能解释这部分表达式匹配什么?最后一个问号是否表明这部分是可选的?这是什么意思?