#regex #string
#регулярное выражение #строка
Вопрос:
Я хотел бы получить demo
объект из строкового файла:
Но, похоже, что мое регулярное выражение неверно: (demo: [)(.*)(],)
sayHello(() => ({
foo: eeeeeeeeeeeeee,
demo: [
{
name: 'abcd',
},
{
name: 'qqqq',
},
],
}));
Ожидаемый результат:
[
{
name: 'abcd',
},
{
name: 'qqqq',
},
]
Комментарии:
1. Кажется, вы пытаетесь проанализировать JS-файл — это может быть очень сложно и почти невозможно, если вы не абсолютно уверены , что
]
внутри этого объекта не может быть, например, в другом месте. Вам также нужно знать, что оно.*
не соответствует новым строкам, для этого вам нужно использовать[sS]*
. Если вы не можете быть уверены, я бы рекомендовал использовать синтаксический анализатор, такой как acorn, чтобы фактически семантически проанализировать файл как JavaScript.2. Это была ошибка, я отредактировал через несколько секунд
3. regex101.com/r/g0iheb/1 — Это сработает, только если demo: object не содержит в себе вложенных объектов. Если у вас разные тестовые примеры, пожалуйста, сообщите нам об этом.