と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
を選択する必要があります。私は否定的な先読みを使ってみましたが、うまくいきません。
roleId
を選択する前に、私は\{(\s*.*?(?!"Permissions":\s*\[\]))*\}
を試したので、jsonに正確なマッチを得たいと思っていましたが、それはすべてのjsonsと許可配列の内側のjsonsと一致するようです。どのように見た目を適切に一致させるために変更する必要があります。
(?<="roleId":)\d*(?=(?:[^{]*"Permissions": \[(?!])))
説明:最初の部分(?<="roleId":)\d*
がrollId 第二部に(?=(?:[^{]*"Permissions": \[(?!])))
否定先読みを見つけるために、正の後読みを使用しています 非見つける私は現在、次の正規表現を試してみてください。3.
良いオプション!未来のことを念頭に置いてください! – TheChetan