gpt4 book ai didi

powershell - 在Powershell中提取两个特殊字符之间的字符串

转载 作者:行者123 更新时间:2023-12-03 00:56:52 25 4
gpt4 key购买 nike

我需要使用两个特殊字符(=和;)之间的字符串提取列表。
以下是带有线型和所需字符串的粗体文件示例。
文件是一个很大的文件,类型是xml。

<type="string">data source=**HOL4624**;integrated sec>
<type="string">data source=**HOL4625**;integrated sec>

我设法找到与“data source =”匹配的行,但是如何获得名称呢?
使用的代码如下。
Get-content regsrvr.txt | select-string -pattern "data source="

非常感谢你!
<RegisteredServers:ConnectionStringWithEncryptedPassword type="string">data source=HOL4624;integrated security=True;pooling=False;multipleactiveresultsets=False;connect timeout=30;encrypt=False;trustservercertificate=False;packet size=4096</RegisteredServers:ConnectionStringWithEncryptedPassword>

<RegisteredServers:ConnectionStringWithEncryptedPassword type="string">data source=HOL4625;integrated security=True;pooling=False;multipleactiveresultsets=False;connect timeout=30;encrypt=False;trustservercertificate=False;packet size=4096</RegisteredServers:ConnectionStringWithEncryptedPassword>

最佳答案

XML无效,因此它不是干净的解析,无论如何您都可以将字符串拆分与regex匹配一起使用:

$html = @"
<RegisteredServers:ConnectionStringWithEncryptedPassword type="string">data source=HOL4624;integrated security=True;pooling=False;multipleactiveresultsets=False;connect timeout=30;encrypt=False;trustservercertificate=False;packet size=4096</RegisteredServers:ConnectionStringWithEncryptedPassword>
<RegisteredServers:ConnectionStringWithEncryptedPassword type="string">data source=HOL4625;integrated security=True;pooling=False;multipleactiveresultsets=False;connect timeout=30;encrypt=False;trustservercertificate=False;packet size=4096</RegisteredServers:ConnectionStringWithEncryptedPassword>
"@

$html -split '\n' | % {$null = $_ -match 'data source=.*?;';$Matches[0]} |
% {($_ -split '=')[1] -replace ';'}

HOL4624
HOL4625

关于powershell - 在Powershell中提取两个特殊字符之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61910804/

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