Ruby регулярное выражение для замены последовательности символов - PullRequest
0 голосов
/ 07 марта 2019

Итак, у меня есть эта строка

x = "{"1"=>"test","2"=>"Another=>Test","3"=>"Another=>One"}" 

, и я хочу заменить символ ракеты , который находится рядом с символом , на символ трубы.таким образом, результат будет

x = "{"1"=>"test","2"=>"Another|Test","3"=>"Another|One"}" 

У меня есть этот код прямо сейчас

if x =~ /(=>\w)/).present?
    x.match(/=>\w/) do |match|
      #loop through matches and replace => with |
    end
end

Так что в основном мой вопрос состоит в том, как я могу пройти через соответствие с регулярным выражением и заменить знак ракеты на трубу?

1 Ответ

2 голосов
/ 07 марта 2019

gsub с положительным прогнозом сделает это.

x = %q[{"1"=>"test","2"=>"Another=>Test","3"=>"Another=>One"}]
x.gsub!(%r{=>(?=\w)}, '|')
puts x

Прогноз (или прогноз) соответствует, но не включает этот бит всовпадение.

Хотя я думаю, %r{=>(?=[^"])}, =>, который не стоит перед кавычкой, является более правильным.

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