Ik zou uit een String die ik naar ldap wil sturen, de key/value pairs, met behulp van een regex, willen extracten om hier wat checks op te doen.
Vb. voor de input string "uid=an,sur,ou=admin,o=domain1,o=domain2" zou ik dan "uid=an,sur", "ou=admin", "o=domain1", "o=domain2" moeten krijgen.
In principe is hier de separator dus gewoonweg een komma, maar zoals je in het voorbeeld kan zien zit er in de value voor uid een komma.
Wat je ook kan opmerken is dat dit een ongeldig character is (RFC 2253). Het is dan ook net de bedoeling van deze extraction dat ik nadat ik die key/value pairs heb, ik deze invalid chars kan escapen vooraleer ik ze naar ldap stuur.
Ik zie precies niet goed in hoe ik ervoor kan zorgen dat de regex tot de laatste komma gaat die vóór een volgende '=' komt. Het lijkt me dat ik dan altijd al te ver ga lezen.
Vb. met de regex
Ik zoek dus (denk ik) naar een manier om te zeggen dat hij pakweg bovenstaande regex gebruikt, maar dan hiervan nog een stuk gaat excluden (tot de eerstgevonden komma, vanachter te beginnen).
Zit ik op een fout spoor, of is dit mogelijk?
Vb. voor de input string "uid=an,sur,ou=admin,o=domain1,o=domain2" zou ik dan "uid=an,sur", "ou=admin", "o=domain1", "o=domain2" moeten krijgen.
In principe is hier de separator dus gewoonweg een komma, maar zoals je in het voorbeeld kan zien zit er in de value voor uid een komma.
Wat je ook kan opmerken is dat dit een ongeldig character is (RFC 2253). Het is dan ook net de bedoeling van deze extraction dat ik nadat ik die key/value pairs heb, ik deze invalid chars kan escapen vooraleer ik ze naar ldap stuur.
Ik zie precies niet goed in hoe ik ervoor kan zorgen dat de regex tot de laatste komma gaat die vóór een volgende '=' komt. Het lijkt me dat ik dan altijd al te ver ga lezen.
Vb. met de regex
Java:
geeft een Matcher me de resultaten "uid=an,sur,ou" en "o=group1,o". Naast het feit dat er dus informatie verloren gaat, zit de Matcher dus ook al te ver in de string.1
| "([a-zA-Z0-9]++)=[.[^=]]++" |
Ik zoek dus (denk ik) naar een manier om te zeggen dat hij pakweg bovenstaande regex gebruikt, maar dan hiervan nog een stuk gaat excluden (tot de eerstgevonden komma, vanachter te beginnen).
Zit ik op een fout spoor, of is dit mogelijk?