Я пытаюсь составить регулярное выражение для соответствия следующей ситуации:
В проекте Node.js у меня есть многострочная строка, которая содержит большой HTML-код, смешанный с некоторыми JS с такой структурой:
<html>
<head>
</head>
<body>
<script type="text/javascript">
... more code ...
},
"bookIds" : [
"abc123",
"qwe456",
"asd789"
],
... more code, and in another json:
},
"bookIds" : [
"foo111",
"bar222",
"baz333"
],
... more code ...
</script>
</body>
</html>
Моя цель - получить первый список идентификаторов книг:
abc123
qwe456
asd789
Итак, как вы можете видеть, условия, с которыми я сейчас работаю:
- Поиск первого
"bookIds" : [
появления и остановка на следующем ]
Я получил что-то подобное с: /bookIds" : \[([\S\s]*?)\]/
. Да, концептуально я думаю о поиске первой строки bookIds
, начинаю после первой [
после этого и останавливаюсь до следующей ]
, но я не знаю, как это сделать. Теперь я получаю документацию о lookahead & lookbehinds.
- Теперь мне нужно искать (или цикл) внутри этого совпадения и получать то, что находится внутри кавычек (я знаю, как я могу сделать это индивидуально:
/"(.*?)"/
)
Но, к сожалению, я часами гуглял и пробовал, и я не заставляю его работать (ни в моем проекте Node, ни в тестах, которые я пробую в regex101.com )
Любые предложения будут высоко оценены!