public static string GenerateNamespaceRegex(params int[] namespaces)
{
StringBuilder sb = new StringBuilder(100 * namespaces.Length);
foreach (int ns in namespaces)
{
if (ns == Namespace.Article) continue;
if (sb.Length > 0) sb.Append('|');
string nsName = Variables.Namespaces[ns];
sb.Append(Tools.StripNamespaceColon(nsName));
string canNS;
if (Variables.CanonicalNamespaces.TryGetValue(ns, out canNS)
&& canNS != nsName)
{
sb.Append('|');
sb.Append(Tools.StripNamespaceColon(canNS));
}
List<string> nsAlias;
if (Variables.NamespaceAliases.TryGetValue(ns, out nsAlias))
foreach (string s in nsAlias)
{
sb.Append('|');
sb.Append(Tools.StripNamespaceColon(s));
}
}
sb.Replace(" ", "[ _]");
return sb.ToString();
}