Regex: сопоставлять и заменять пробелы только в определенных строках - PullRequest
0 голосов
/ 07 октября 2018

Я уверен, что буду биться головой о стену, когда читаю ответ, но я не могу понять это.

У меня есть JSON с поддельными данными для заполнения БД.Одно свойство называется «slug» и содержит строку, которую я хотел бы «slugify».

Так вот:

[
  {
    blah: '[...]'
    slug: 'Plem ap at rem',
    bleh: '[...]',
  },
  {
    blah: '[...]'
    slug: 'Etiam vel augue',
    bleh: '[...]',
  },
]

Должно стать:

[
  {
    blah: '[...]'
    slug: 'Plem-ap-at-rem',
    bleh: '[...]',
  },
  {
    blah: '[...]'
    slug: 'Etiam-vel-augue',
    bleh: '[...]',
  },
]

Я хотел сначала нацелиться на значение и безнадежно захватить только пробелы:

slug: '(?:[\w]*([\s])*)+'

Я немного запутался с обходными путями, но не повезло.

PS: я намерен использовать его впоиск и замена VSCode, но знание того, как мне это сделать в plain JS , тоже приветствуется!

1 Ответ

0 голосов
/ 09 октября 2018

В VSCode, так как lookbehind не работает:

(slug: '\S*)\s заменить на: $1-

Вам придется спамить, нажмите кнопку Заменить все несколько раз, покаколичество совпадений уменьшилось до 0, поскольку оно соответствует только первому вхождению в каждой строке.Не идеально, я знаю, но если вы просто делаете это один раз ...

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