gpt4 book ai didi

.net - PowerShell -match 运算符和多个组

转载 作者:行者123 更新时间:2023-12-04 01:34:24 25 4
gpt4 key购买 nike

我有以下正在 PowerShell 中处理的日志条目 我正在尝试使用 -match 提取所有事件名称和持续时间运营商,但我只得到了一个比赛组。当我使用 Regex 在 C# 中做同样的事情时,我没有得到我看到的所有匹配项目的。有人可以解释我做错了什么吗?
相关的 PowerShell 脚本

$formattedMessage -match "(Get\sClient\sModel|Parse\sExpression|Get\sAbstract\sQuery|Compile\sQuery|Execute\sQuery|Get\sQuery\sPlan\sComplexity|Async\sTotal|Total)\s-\sduration\(([0-9]*)" | out-null
$matches
输出
Name  Value
---- -----
0 Get Client Model - duration(0
1 Get Client Model
2 0
日志条目示例:
Timestamp: 11/9/2009 6:48:41 PM
Message:
Category: QueryService
Priority: 3
EventId: 1001
Severity: Information
Title: SPARQL Query Response
Machine: SPOON16-SERVER
App Domain: KnowledgeBaseHost.exe
ProcessId: 2040
Process Name: D:\QueryService\QSHost.exe
Thread Name:
Win32 ThreadId:8092
Extended Properties:
Key - Workflow_cbbdd58b-e574-4054-88d4-1dd7a56dc9d9
Timeout - 1800
Result Format - WireTable
Result from Registry - False
Compiled Query from Cache - True
Result Count - 28332
Query Plan Complexity - 661622
Get Client Model - duration(0) start(0)
Parse Expression - duration(0) start(0)
Get Abstract Query - duration(0) start(0)
Compile Query - duration(0) start(0)
Get Query Plan - duration(0) start(1)
Execute Query - duration(63695) start(1)
Get Query Plan Complexity - duration(0) start(63696)
Get Executed Operations - duration(0) start(63696)
Total - duration(63696) start(0)
Async Total - duration(63696) start(0)

最佳答案

您可以使用 Select-String 执行此操作V2 中的 cmdlet,但您需要指定 -AllMatches 开关,例如:

$formattedMessage | Select-String 'regexpattern' -AllMatches
请记住,使用 -match运算符您正在做的主要事情是寻找“a”匹配,即正则表达式模式是否匹配?

关于.net - PowerShell -match 运算符和多个组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703061/

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