Получить строки между двойными кавычками, также сохраняя текст между - PullRequest
1 голос
/ 01 апреля 2020

У меня есть этот текст:

"Hello" he said "how are you?"

, и я хочу разделить его там, где есть кавычки, но я хочу сохранить 2 соответствующие кавычки вместе, поэтому я хотел бы получить :

[ "\"Hello\"" , " he said ", "\"how are you?\"" ]

Как бы я это сделал? Я знаю, что могу получить только цитируемый текст примерно так: "(.*?)"/g, но это пропускает другие части текста. Была бы признательна за помощь!

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете использовать .split() с вашим регулярным выражением (хотя вместо .*? рекомендуется использовать более эффективный и также соответствующий класс символов разрывов строк, [^"]*), заключенный в группу захвата:

console.log(
    '"Hello" he said "how are you?"'.split(/("[^"]*")/).filter(Boolean)
)

Вывод:

[
  "\"Hello\"",
  " he said ",
  "\"how are you?\""
]

.filter(Boolean) будет исключать пустые строки из результирующего массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...