检查字符串是不是包含环境变量

Posted

技术标签:

【中文标题】检查字符串是不是包含环境变量【英文标题】:Check if string contains environment variable检查字符串是否包含环境变量 【发布时间】:2016-10-03 14:15:11 【问题描述】:

在 .Net 中,我们有方法 Environment.ExpandEnvironmentVariables,它允许我们将提供的字符串包含的所有环境变量替换为其值。

但是如果我只想检查一个字符串是否包含环境变量呢?

当然,我可以比较展开前后的字符串,但是有没有更优雅的方法呢?

【问题讨论】:

我认为比较是你最好的也是唯一的选择。 另外,您可以使用Environment.GetEnvironmentVariables 获取键值对列表(实际上是字典)并自己替换它们。但我不确定是否有一些可能难以覆盖的极端案例。 【参考方案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;

【讨论】:

以上是关于检查字符串是不是包含环境变量的主要内容,如果未能解决你的问题,请参考以下文章

csh 成语检查环境变量是不是存在?

如何检查环境变量是不是存在并获取其值? [复制]

如何检查 Node.js 中是不是设置了环境变量?

检查环境变量是不是存在并设置为 True [关闭]

检查环境变量是不是存在的好习惯是啥?

检查环境变量是不是在 Unix shell 脚本中设置的简洁方法是啥?