解析连接字符串的属性

问题描述:

我有一个像下面这样的字符串,我需要使用PowerShell解析出它。我只是想保持串起来的“EntityPath”,并采取了一切实体路径后:解析连接字符串的属性

Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137 
+0

的[Powershell的去除特殊字符的第一个实例后的文本](可能的复制http://*.com/questions/24044226/powershell-remove-text-after负一实例中,特殊字符) –

$testStr = "Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137" 

$parts = $testStr -split "EntityPath" 

Write-Host $parts[0] 

这可能会实现

我不能确定你的要求,但现在这是我想的第二个问题。我会试着理解你的问题,因为它有点破英文。

function Invoke-MyWork($testStr) 
{ 
    $parts = $testStr -split "EntityPath" 
    $parts[0] 
} 
$originalValue = "Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137" 

$upToEntityPath = Invoke-MyWork $originalValue 


Write-Host "UpToEntityPath: $($upToEntityPath)" 
Write-Host "OriginalValue: $($originalValue)" 

这里使用正则表达式的溶液。

$ep = "Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137" 
[regex]::Match($ep, 'EntityPath=([^;|\s]+)').Groups[1].Value # output: listen_1137 
[regex]::Match($ep, '(EntityPath=[^;|\s]+)').Groups[1].Value # output: EntityPath=listen_1137 

试试这个:

$mystring="Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137" 
$NameValue=$mystring -replace ";", "`n" | ConvertFrom-StringData 
$NameValue.EntityPath