PowerShell正则表达式需求:需同时匹配反斜杠与点字符
解决PowerShell中同时匹配反斜杠和点的正则问题
你之前使用的正则表达式"\\|\."采用的是或逻辑,只要字符串包含\或.其中任意一个字符,就会返回$True,这和你需要的「两个字符必须同时存在才匹配」的要求不符。
以下两种方法可以实现你的需求:
方案1:使用正则正向预查
通过两个正向预查断言,确保字符串中同时存在\和.(两者顺序不影响):
"\MyFile.png" -match "^(?=.*\\)(?=.*\.)"
(?=.*\\):断言字符串中存在反斜杠\(.*匹配任意数量的任意字符)(?=.*\.):断言字符串中存在点.- 只有两个断言同时成立时,匹配才会成功。
方案2:拆分独立匹配(可读性更高)
无需复杂正则,直接用PowerShell的逻辑运算符-and分别验证两个字符是否存在:
$targetStr = "\MyFile.png" $targetStr -match '\\' -and $targetStr -match '\.'
这种方式逻辑清晰,更易理解,适合简单的多条件匹配场景。
内容的提问来源于stack exchange,提问作者GaryAtlan82
相关产品推荐
相关产品推荐

