如何在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是一个魔术变量,保存最后一个匹配操作的结果。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |