Select-多个字符串的字符串正则表达式
Select-String regex for multiple strings
我正在尝试从 curl 输出中提取最后一个条目以仅显示插件名称和版本。
不幸的是,我的命令惨遭失败。
这是我这边使用的命令
curl --silent https://jenkins-updates.cloudbees.com/download/plugins/blueocean-github-pipeline/ --ssl-no-revoke | findstr href |Select-String -Pattern "[0-9]/([^<]*)<" |Select-Object -last 1 | ForEach-Object { $_.Matches[0].Groups[1].Value }
输出它的给定是
blueocean-github-pipeline.hpi">1.25.3
我只想显示以下内容
blueocean-github-管道 1.25.3
并删除 ">,中间有一个制表符
我该怎么办?
提前致谢
您可以使用
... | Select-String -Pattern '\d/([^>]*)\.\w+">([^<]*)<' | `
Select-Object -last 1 | `
ForEach-Object { $_.Matches[0].Groups[1].Value + " " + $_.Matches[0].Groups[2].Value }
输出:
blueocean-github-pipeline 1.25.2
参见regex demo。
详情:
\d/
- 一个数字和一个 /
字符
([^>]*)
- 第 1 组:除 >
字符 之外的任何零个或多个字符
\.
- 一个点
\w+
- 一个或多个单词字符
">
- 固定字符串
([^<]*)
- 第 2 组:除 <
字符 之外的任何零个或多个字符
<
- 一个 <
字符。
最后的结果是第1组+space+第2组的串联
我正在尝试从 curl 输出中提取最后一个条目以仅显示插件名称和版本。 不幸的是,我的命令惨遭失败。 这是我这边使用的命令
curl --silent https://jenkins-updates.cloudbees.com/download/plugins/blueocean-github-pipeline/ --ssl-no-revoke | findstr href |Select-String -Pattern "[0-9]/([^<]*)<" |Select-Object -last 1 | ForEach-Object { $_.Matches[0].Groups[1].Value }
输出它的给定是 blueocean-github-pipeline.hpi">1.25.3
我只想显示以下内容 blueocean-github-管道 1.25.3
并删除 ">,中间有一个制表符
我该怎么办?
提前致谢
您可以使用
... | Select-String -Pattern '\d/([^>]*)\.\w+">([^<]*)<' | `
Select-Object -last 1 | `
ForEach-Object { $_.Matches[0].Groups[1].Value + " " + $_.Matches[0].Groups[2].Value }
输出:
blueocean-github-pipeline 1.25.2
参见regex demo。
详情:
\d/
- 一个数字和一个/
字符([^>]*)
- 第 1 组:除>
字符 之外的任何零个或多个字符
\.
- 一个点\w+
- 一个或多个单词字符">
- 固定字符串([^<]*)
- 第 2 组:除<
字符 之外的任何零个或多个字符
<
- 一个<
字符。
最后的结果是第1组+space+第2组的串联