【发布时间】:2019-08-30 04:47:18
【问题描述】:
尝试选择一个返回单词和数字的字符串,而不擦除输出的其余部分。
现在我有以下内容:
$files = @'
Associations : 1, 2, 3, 4
Transactions: 20, 21, 22
Associations : 5, 6, 7, 8
Transactions, 99, TRANS12, TRANS13, 97
@'
$blob = $files -split '\r?\n'
$array = @()
[bool]$transBool = $false
$blob | ForEach-Object {
if ($_ -match ':') {
if ($_ -match '(Transactions)' -or $_ -match '(Tr)' -or $_ -match '(Trans)') {
$Trans = ($_ -split ':')[-1].TrimStart(",").TrimEnd(",")
$trans = $Trans -split ',' -replace " ", "" | select -Unique
$transBool = $true
} elseif ...
if ($Trans -match '[A-Z]') {
$transBool = $true
$obj = New-Object PSObject -Property @{
TransactionsAugust= $Trans
$output = "{0}
`Transactions for August : {1}" -f $output,
(($array.TransactionsAugust | Where-Object {$_ -like "[A-Z]*" -like "[0-9]" } | select -Unique) -join ",")
Write-Host $output
我能够在我的输出中提取包含单词 TRANS 的所有事务,但它也摆脱了例如 99 和 97。
目标:String 能够捕获 TRANS12、TRANS13 并返回到名为 Transactions for August 的类别中。交易 99 和 97 将被拉到不同的类别中,称为另一个数组。
【问题讨论】:
-
您有 3 个代码 sn-ps,其中 3 个不同的变量(
$files、$Trans、$output)似乎彼此之间没有任何关系。您的第一个代码 sn-p 中也有错字。请创建一个 minimal reproducible example 来展示您要解决的问题,然后 edit 您的问题并复制/粘贴该代码。 -
我不想包含整个代码,这会是很多代码行
-
我没有要求您提供您的整个代码。请再读一遍。
标签: powershell