加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在Powershell中提取正则表达式反向引用/匹配的值

发布时间:2020-12-14 06:34:12 所属栏目:百科 来源:网络整理
导读:我有一个包含数据行的文本文件。我可以使用以下powershell脚本来提取我感兴趣的行: select-string -path *.txt -pattern "subject=([A-Z.]+)," 一些示例数据将是: blah blah subject=THIS.IS.TEST.DATA,blah blah blah 我想要的是只能提取主题的实际内容(
我有一个包含数据行的文本文件。我可以使用以下powershell脚本来提取我感兴趣的行:
select-string -path *.txt -pattern "subject=([A-Z.]+),"

一些示例数据将是:

blah blah subject=THIS.IS.TEST.DATA,blah blah blah

我想要的是只能提取主题的实际内容(即“THIS.IS.TEST.DATA”字符串)。我试过这个:

select-string -path *.txt -pattern "subject=([A-Z.]+)," | %{ $_.Matches[0] }

但是“匹配”属性始终为空。我究竟做错了什么?

我不知道你的版本为何不起作用应该工作这是一个非常有用的版本。
$p = "subject=([A-Z.]+),"
select-string -path *.txt -pattern $p | % {$_ -match $p > $null; $matches[1]}

编辑。 dant说明

-match是一个正则表达式匹配运算符:

>"foobar" -match "oo.ar"
True

> $ null只是抑制True被写入输出。 (尝试删除它。)有一个cmdlet做同样的事情,我的名字我现在不记得。

$ matches是一个魔术变量,保存最后一个匹配操作的结果。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读