@ince

Не мэтчится регулярное выражение?

Имею файл с таким текстом
{
      "Цена": "22020",
      "Местоположение": "Рубцовск"
    },
    {
      "Цена": "62087",
      "Местоположение": "Благовещенск"
    },


Хочу поменять местами Местоположение и Цену
Применяю регэксп:
let re = /(      "Цена": "\d*")(,\n\s)(      "Местоположение": "[А-Яа-яЁё\s-_]*")/g


На regex101 проходит, а на node.js - нет.
В чем проблема? Подозреваю непечатаемые символы переноса строки.
  • Вопрос задан
  • 561 просмотр
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
А если изменить сам подход? Зачем парсить JSON регулярками?
https://codepen.io/KorniloFF/pen/vbaLdM?editors=1011
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Kuch
Проблема из-за переноса строки. Чтобы ее решить преобразуй обратно в объект с помощью JSON.parse(), а потом сделай JSON.stringify() без третьего аргумента, либо в третьем аргументе укажи вместо '\t\' пустой стринг ''. Тогда json будет в одну строку без переносов и регулярка будет находить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы