私がサポートしている .Net WinForms アプリケーションには、次の正規表現があります。
public static String MacroTemplate = @"(~#([^:]+):([^:]+):([^:]*)(?::(.*))?#~)";
私はそのほとんどを理解しているので、~# で始まり #~ で終わり、コロンで区切られたコンポーネントを持つ文字列に一致することがわかります。私が理解していないのは、式の最後の部分、特に次の部分です。
(?::(.*))?
式のこの部分が何に一致するか説明できる人はいますか? 最後の疑問符は、この部分がオプションであることを示していますか? どういう意味?