나는 다음과 같은 JSON 배열이 있습니다정규식 부정적 예측과 JSON에 대한
[
{
"roleId": 128,
"roleName": "B",
"Permissions": []
},
{
"roleId": 310,
"roleName": "ROLE",
"Permissions": [
{
"permissionId": 8074,
"isPermissionActive": true
},
{
"permissionId": 2271,
"isPermissionActive": true
},
{
"permissionId": 8075,
"isPermissionActive": true
},
{
"permissionId": 2275,
"isPermissionActive": true
}
]
},
{
"roleId": 201,
"roleName": "B",
"Permissions": []
},
{
"roleId": 5,
"roleName": "B",
"Permissions": []
}
]
내가 null 이외의 권한으로 jsons의 roleId
를 선택해야합니다. 나는 부정적인 선견지명을 사용하려고했지만 나던 한 것 같습니다.
\{(\s*.*?(?!"Permissions":\s*\[\]))*\}
을 시도 했으므로 roleId
을 선택하기 전에 json에서 정확한 일치를 얻고 싶었지만 사용 권한 배열의 모든 jsons 및 내부 jsons와 일치하는 것으로 보입니다. 미리보기를 바꿔서 올바르게 일치시켜야합니다.
(?<="roleId":)\d*(?=(?:[^{]*"Permissions": \[(?!])))
설명 : 첫 번째 부분 (?<="roleId":)\d*
가 rollId 두 번째 부분을 (?=(?:[^{]*"Permissions": \[(?!])))
부정적 예측을 찾기 위해 긍정적 인 lookbehind를 사용 비 찾을 수 저는 현재 다음과 같은 정규식을 시도 3.
좋은 옵션! 미래를 염두에 두겠다! – TheChetan