2016-06-03 36 views
0

In .Net haben wir die Methode Environment.ExpandEnvironmentVariables, mit der wir alle Umgebungsvariablen ersetzen können, die in den Werten von string enthalten sind.Überprüfen, ob die Zeichenfolge die Umgebungsvariable enthält

Aber was, wenn ich nur überprüfen möchte, ob String eine Umgebungsvariable enthält? Natürlich kann ich die Saite vor und nach der Expansion vergleichen, aber gibt es einen eleganteren Weg das zu tun?

+1

Ich denke, zu vergleichen ist die beste und einzige Möglichkeit. –

+0

Alternativ können Sie mithilfe von 'Environment.GetEnvironmentVariables' eine Liste (tatsächlich ein Wörterbuch) von Schlüssel/Wert-Paaren erstellen und sie selbst ersetzen. Aber ich bin mir nicht sicher, ob es einige Eckfälle gibt, die schwierig zu decken sind. – Groo

Antwort

1

Sie könnten eine Erweiterung erstellen, hat eine Regex Suche gegen die Saite

public static bool HasEnvironmentVariable(this string path) 
{ 
    Regex regex = new Regex(@"%[A-Za-z0-9\(\)]*%"); 
    Match match = regex.Match(path); 

    return match.Success; 
} 
Verwandte Themen