【问题标题】:powershell string comparison operators ignoring wildcards忽略通配符的powershell字符串比较运算符
【发布时间】:2014-04-02 14:16:20
【问题描述】:

我正在尝试像这样比较字符串:

'Backup Exec Alert: Job Success (Server: "AMSMGMT") (Job: "Ams-Daily-Back")' -match '(Server: "AMSMGMT") (Job: "Ams-Daily-Back")'

返回 false 因为我需要转义通配符,例如

'/(Server: "AMSMGMT"/) /(Job: "Ams-Daily-Back"/)'

问题:

是否有任何 powershell 函数来查找忽略通配符/正则表达式的子字符串?

非常感谢

【问题讨论】:

    标签: regex powershell substring wildcard


    【解决方案1】:

    由于您正在进行文字字符串匹配, -like 可能是比 -match 更好的选择

    'Backup Exec Alert: Job Success (Server: "AMSMGMT") (Job: "Ams-Daily-Back")' -like '*(Server: "AMSMGMT") (Job: "Ams-Daily-Back")'
    
    True
    

    【讨论】:

    • 非常感谢 mjolinor,这就是我所追求的
    【解决方案2】:

    与之前的答案一样,like 更合适,但您也可以使用“Escape”

    'Backup Exec Alert: Job Success (Server: "AMSMGMT") (Job: "Ams-Daily-Back")' -match [System.Text.RegularExpressions.Regex]::Escape('(Server: "AMSMGMT") (Job: "Ams-Daily-Back")')
    

    或者C#包含方法

    'Backup Exec Alert: Job Success (Server: "AMSMGMT") (Job: "Ams-Daily-Back")'.Contains('(Server: "AMSMGMT") (Job: "Ams-Daily-Back")')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多