gpt4 book ai didi

.net - 从 [regex] 类型加速器表达式中捕获命名组的 PowerShell 语法是什么?

转载 作者:行者123 更新时间:2023-12-01 06:31:33 24 4
gpt4 key购买 nike

该问题使用以下示例字符串:

$r = 
"20160112 11:26:39 UPDATE CMIS-NC.ABC.LA012345J.NAM/MOUSE, MICKEY J.SEX/M.RAC/W.DOB/19670601.PCA/A1.ARI/CRIM1234567.DNY/CONVICTED OF DISTRIBUTING THE PEACE.OCA/123456.SOR/LA.MIS/CONFIRM RECORD AT DISNEY STUDIOS 123-456-7890 OR PAGER 123-456-7890.
20160112 11:26:39 RESPONSE CMIS-NC.ACK 1234567890 CMIS-NC 123456 CMIS-NC 123456 20160112 11:26:31

.
20160112 11:26:39 INFO MSN of message to LEMS is <1234567890>.
20160112 11:26:39 RESPONSE CMIS-NC.MSG 1234567890 CMIS-NC 123456 NC2K AC1234 20160112 11:26:31
LA012345J
CTL/
ATN/

6L12345678901234567890EDP
LA012345J
ACCEPT MKE/EDP
NAM//MOUSE, MICKEY J
ARI/CRIM1234567
NRI/1234567890"

可以使用 PowerShell 内置正则表达式捕获命名组,方法是在 $matches 自动变量中引用它们:
$updateRequestPattern = "(?<RequestDate>\d{8} \d{2}:\d{2}:\d{2}) (?<UpdateRequest>UPDATE CMIS-NC\.[A-Z]{3,4}\.LA012345J\..+)\n"

$request = $r -match $updateRequestPattern

$matches['RequestDate']

但是如果我想使用 [regex] 类型加速器呢?

在那里, $matches 自动变量将不起作用。我也不能做类似 [regex]::Groups['RequestDate'].Value 的事情(它会产生“无法索引到空数组。”错误)。

任何人都可以完成此示例(或提供另一个示例)来捕获命名组(从而展示如何公开其他 .NET [regex] 方法)?
$updateRequestPattern = "(?<RequestDate>\d{8} \d{2}:\d{2}:\d{2}) (?<UpdateRequest>UPDATE CMIS-NC\.[A-Z]{3,4}\.LA036035J\..+)\n"
$request = [regex]::Matches($r, $updateRequestPattern)

最佳答案

返回值是一个 MatchCollection,因此您可以对其进行索引,然后引用组属性,并从那里以相同的方式使用索引:

$request[0].Groups['RequestDate']

关于.net - 从 [regex] 类型加速器表达式中捕获命名组的 PowerShell 语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37355076/

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