Regex to match specific, multiline object in JSON list -
i work json lists can following:
[ { "accesstype": "*", "principaltype": "role", "principalid": "$unauthenticated", "permission": "deny" }, { "accesstype": "*", "principaltype": "role", "principalid": "$everyone", "permission": "deny" }, { "accesstype": "*", "principaltype": "role", "principalid": "$owner", "permission": "allow" } ] what proper way write regex correctly extracts list item contains word $everyone? need extract entire object, correct result should be:
{ "accesstype": "*", "principaltype": "role", "principalid": "$everyone", "permission": "deny" } i have tried \{(?s).*everyone(?s).*\}, match first , last opening , closing curly bracket in list, in between.
for one-off task of search , replace in ide:
\{[^}]*?everyone[^}]*\} if need $, use either:
\{[^}]*?\$everyone[^}]*\} \{[^}]*?[$]everyone[^}]*\} instead of (?s).* allows in between { , everyone , between everyone , }, restrict [^}]*?, disallows } in "free" part.
a lot of assumptions made in regex, don't use in general case.
Comments
Post a Comment