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

前端之家收集整理的这篇文章主要介绍了如何在Powershell中提取正则表达式反向引用/匹配的值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含数据行的文本文件。我可以使用以下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是一个魔术变量,保存最后一个匹配操作的结果。

原文链接:https://www.f2er.com/regex/357425.html

猜你在找的正则表达式相关文章