Найти все пробелы между словами

В текущих строках мне нужно через регулярку найти все пробелы между словами, которые находятся в кавычках

text['Sh a p es']
text['Sh a p es']
text[' Sha pes']
text['   ']

Я написал такое выражение /text\['(\s*)'\]/gm, но оно подбирает только те строки, в которых идут одни пробелы подряд


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Используйте

(?:\G(?!^)|text\[')[^']*?\K\s+(?=[^']*'])

См. пример работы регулярного выражения.

Подробности

  • (?:\G(?!^)|text\[') - конец предыдущего совпадения или текст text['
  • [^']*? - ноль и более (но как можно меньше) символов, отличных от '
  • \K - оператор, очищающий буфер текущего совпадения
  • \s+ - один и более пробельных символов
  • (?=[^']*']) - сразу после текущей позиции должны быть ноль и более символов, отличных от ', а потом текст '].
→ Ссылка