2016-06-03 4 views
0

В .Net у нас есть метод Environment.ExpandEnvironmentVariables, который позволяет нам заменять все переменные среды, которые содержат строку в своих значениях.Проверьте, содержит ли строка переменную окружения

Но что, если я хочу только проверить, содержит ли строка какую-либо переменную среды? Конечно, я могу сравнить строку до и после расширения, но есть ли более элегантный способ сделать это?

+1

Я думаю, что сравнение является лучшим и единственным вариантом. –

+0

В качестве альтернативы вы можете получить список (фактически, словарь) пар ключ-значение с помощью 'Environment.GetEnvironmentVariables' и заменить их самостоятельно. Но я не уверен, есть ли какие-то угловые случаи, которые могут быть трудно охватить. – Groo

ответ

1

Вы можете создать расширение, которое делает Regex поиск по строке

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

    return match.Success; 
} 
Смежные вопросы