问题描述
使用PowerShell在两个不同的字符之间捕获文本。在第一个{和最后一个}之间。基本上有包含Json的文本,我想从中捕获json。我在找例子,但到目前为止还没有运气。
PROJECT Description: Azure Test Project Description
PROJECT ADMINISTRATORS: jjohnson
CONTRIBUTORS: jdoe
BOARD PROCESS: Agile
SPECIAL INSTRUCTIONS:
{
"organization": "https://dev.azure.com/cloudops","projectName": "Test Project","projectDescription": "Azure Test Project Description","projectProcesstype": "Agile","specialInstructions": "","adminMembers": [
{
"userSamAccountName": "jjohnson","userEmailAddress": "[email protected]","userPrincipalName": "[email protected]","projectGroupType": "projectAdministrator"
}
],"contribMembers": [
{
"userSamAccountName": "jdoe","userEmailAddress": "[email protected]","userPrincipalName": "[email protected]","projectGroupType": "projectContributor"
}
]
}
解决方法
这是您要找的吗?
[Regex]::Match((Get-Content "sampleinputfile.txt" -Raw),'^{.+}',[Text.RegularExpressions.RegexOptions]::Multiline -bor
[Text.RegularExpressions.RegexOptions]::Singleline).Value
基本上,这会将输入文件转换为单个(换行符分隔的)字符串(Get-Content -Raw
),然后使用.NET Framework's Match
method对{{之间的文本行进行正则表达式匹配1}}和{
个字符(含)。