PowerShell使用正则提取第三个斜杠到末尾斜杠前的内容
PowerShell 固定路径结构正则捕获方案
最优正则表达式
你需要的正则为 ^(?:/[^/]+){2}(/[^/]+),匹配逻辑如下:
^从字符串开头匹配(?:/[^/]+){2}非捕获组,连续匹配2次「斜杠+非斜杠的任意字符」,直接吃掉路径前两段/example/text部分(/[^/]+)捕获组1,匹配你需要的「第三个斜杠开始,到下一个斜杠之前的所有内容」,完全符合输出要求
可运行的修正代码
# 模拟CSV导入后每行的对象结构,实际使用时替换为你的Import-Csv逻辑即可 $Example = @( [PSCustomObject]@{ExampleHeader = '/example/text/typed/HERE.TXT'} [PSCustomObject]@{ExampleHeader = '/example/text/istyped/HERE.TXT'} [PSCustomObject]@{ExampleHeader = '/example/text/canbetyped/HERE.TXT'} [PSCustomObject]@{ExampleHeader = '/example/text/sometimestyped/HERE.TXT'} ) $Output = $Example | ForEach-Object { if ($_.ExampleHeader -match '^(?:/[^/]+){2}(/[^/]+)') { $matches[1] } } # 输出结果 $Output
输出效果
执行上述代码后输出完全符合预期:
/typed /istyped /canbetyped /sometimestyped
内容的提问来源于stack exchange,提问作者haimster2797
相关产品推荐
相关产品推荐

