Это может быть не очень хороший ответ - это зависит от того, что именно у вас есть.Это выглядит , как будто у вас есть список строк, и вы хотите идентификаторы из некоторых из них.Если это так, это будет намного чище и легче для чтения, если вы будете анализировать JSON, а не писать византийское регулярное выражение.Например:
import json
# lines is a list of strings:
lines = ['{"id":1351572979731,"parent_pid":21741,"available":false,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}',
'{"id":1351572329731,"parent_pid":21741,"available":false,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}',
'{"id":1351572943231,"parent_pid":21741,"available":true,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}',
'{"id":1651572973431,"parent_pid":21741,"available":true,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}',
]
# parse it and you can use regular python to get what you want:
[line['id'] for line in map(json.loads, lines) if line['available']]
результат
[1351572943231, 1651572973431]
Если код, который вы разместили, представляет собой одну длинную строку, вы можете заключить его в []
и затем проанализироватькак массив с тем же результатом:
import json
line = r'{"id":1351572979731,"parent_pid":21741,"available":false,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}, {"id":1351572329731,"parent_pid":21741,"available":false,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}, {"id":1351572943231,"parent_pid":21741,"available":true,"lou":"678","feature":true,"pub":true,"require":null,"option4":""},{"id":1651572973431,"parent_pid":21741,"available":true,"lou":"678","feature":true,"pub":true,"require":null,"option4":""}'
lines = json.loads('[' + line + ']')
[line['id'] for line in lines if line['available']]