Замена строки на месте после совпадения

Я получаю ввод в виде строки, как показано ниже -

{"user":"myuser","password":"abcd1234"}

и хотите поменять место, как показано ниже -

{"user":"myuser","password":***********}

Пытался с gsub, но не смог найти никакого решения, какое должно быть решение для этого?

Это не входная строка, это входной хеш!

Rajagopalan 30.03.2021 12:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
48
1

Ответы 1

Похоже, вы хотите отредактировать строку JSON. Сложно обойтись без предварительного анализа, потому что в данных могут быть двойные кавычки (а кто в наши дни не использует двойные кавычки в своих паролях ??)

Регулярное выражение должно быть примерно таким:

s = '{"user":"myuser","password":"abcd\"1234"}'
s.sub(/,"password":"(?:\\.|[^\\"])*"/, ',"password":"********"')

Обновлять

Если ваш JSON достаточно мал, вы можете проанализировать его, изменить данные, а затем заново сгенерировать:

require 'json'
s = '{"user":"myuser","password":"abcd\"1234"}'
j = JSON.parse s
j["password"] = ?* *14
s = j.to_json

Спасибо Фравадона

Mike 30.03.2021 12:40

Но использование этого регулярного выражения будет соответствовать «password»: «abcd1234». Хотите изменить его как «password»: ********** Каким должен быть способ для этого, если мне придется анализировать Json строка измените значение и снова измените строку

Mike 30.03.2021 12:41

Спасибо Фравадоне, так как я получил подсказку о json, я получил требуемый ответ, как показано ниже - parsed = JSON.parse (hash ["key"]) parsed ["password"] = "#" * 15 hash ["key"] = parsed. to_s Спасибо за решение, которое вы предоставили

Mike 30.03.2021 12:56

Пожалуйста. Я думал, что вы не хотите разбирать свой JSON.

Fravadona 30.03.2021 13:12

Другие вопросы по теме