gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:45:55 28 4
gpt4 key购买 nike

我有一个包含数据行的文本文件。我可以使用以下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]}

说明:
-match是一个正则表达式匹配运算符:
>"foobar" -match "oo.ar"
True
> $null仅禁止将True写入输出。 (尝试将其删除。)有一个cmdlet可以执行与我现在不记得的名字相同的操作。
$matches是一个魔术变量,用于保存上一个 -match操作的结果。

关于regex - 如何在Powershell中提取正则表达式反向引用/匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/614651/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com