Найти текст между двойными кавычками в ruby ​​от gsub - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу найти текст в текстовом файле с помощью gsub в ruby ​​и изменить его следующим образом:

Мой текст в основном файле:

set description "alas-cd002-ak"

И я хочу изменить его на ниже:

<desc>alas-cd002-ak</desc>

Поэтому я использовал приведенную ниже команду, но она не сработала:

text.gsub!(/\sset\sdescription\s"(?<name>^[a-zA-Z0-9_.-]*$)"/,'<desc>\k<name></desc>')

Пожалуйста, помогите мне исправить мой код gsub.также я новичок в Ruby.

1 Ответ

0 голосов
/ 23 февраля 2019

Лучший подход - использовать регулярное выражение, как это сделал @Wiktor в комментарии.Это просто демонстрация способа использования регулярного выражения с перечислителем.

str = "set description \"alas-cd002-ak\""

enum = ['<desc>', '</desc>'].cycle
  #=> #<Enumerator: ["<desc>", "</desc>"]:cycle> 
str.gsub('"') { enum.next }
  #=> "set description <desc>alas-cd002-ak</desc>" 

Примечание: puts str отображает

set description "alas-cd002-ak"
...