私はPythonを使用して、正規表現を使用してSDDLを解析しています。SDDL は常に「type:some text」の形式で、最大 4 回繰り返されます。タイプは、「O」、「G」、「D」、または「S」のいずれかで、その後にコロンが続きます。「一部のテキスト」の長さは可変です。
サンプルの SDDL を次に示します。
O:DAG:S-1-5-21-2021943911-1813009066-4215039422-1735D:(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)S:NO_ACCESS_CONTROL
これが私がこれまでに持っているものです。2 つのタプルは問題なく返されますが、他の 2 つ ('G','S-1-5-21-2021943911-1813009066-4215039422-1735') と ('S','NO_ACCESS_CONTROL') は返されません。
import re
sddl="O:DAG:S-1-5-21-2021943911-1813009066-4215039422-1735D:(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)S:NO_ACCESS_CONTROL"
matches = re.findall('(.):(.*?).:',sddl)
print matches
[('O', 'DA'), ('D', '(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)')]
私が返したかったのは
[('O', 'DA'), ('G','S-1-5-21-2021943911-1813009066-4215039422-1735'), ('D', '(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)'),('S','NO_ACCESS_CONTROL')]