【发布时间】:2020-02-17 22:57:33
【问题描述】:
我有一些从 jenkins 脚本移植的代码,我需要它作为 shell 命令。所以我知道正则表达式 有效 - 让我大吃一惊的是它如何 match 但没有我的捕获组。我需要的只是根级目录名称:
foo
baz
它如何“匹配”但没有我的组?顺便说一句:如果有更简单的方法来实现这一点,我会全力以赴。
PS E:\SysData\Jenkins\workspace\chb0_chb0mb_example> git diff --name-only origin/master feature/foo | %{ Resolve-Path -Relative $_ } | sls '.\\.*\\.*' | sls '\\.\\(.+?)\\.*|.*' | %{$_.matches}
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 0
Length : 48
Value : .\foo\Nuget\deleteme.txt
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 0
Length : 55
Value : .\baz\QC_OH_DARKESol\deleteme.txt
【问题讨论】:
-
git 输出什么?
-
.gitignoreJenkinsfilefoo\Nuget\deleteme.txtbar\QC_OH_DARKESol\deleteme.txt -
顺便说一句:您可以将
git --diff输出直接 传送到Resolve-Path- 不需要%(ForEach-Object),这会不必要地减慢速度:git diff --name-only origin/master feature/foo | Resolve-Path -Relative
标签: regex git powershell