У меня есть строка "(1,2,3,4,5,6),(1,2,3)" Я хотел бы изменить ее на "('1','2','3','4','5','6'),('1','2','3')" - заменить все части, которые используются /([^,)("])/ на '$1', '$2' и т. Д.
"(1,2,3,4,5,6),(1,2,3)"
"('1','2','3','4','5','6'),('1','2','3')"
/([^,)("])/
'$1', '$2'
Попробуйте
mystring.gsub(/([\w.]+)/, '\'\1\'')
Это заменит числа (целые числа / числа с плавающей запятой) и слова на их «окруженные кавычками» значения, оставляя только знаки препинания (кроме точки).
"(1,2,3,4,5,6),(1,2,3)".gsub(/([^,)("]\w*)/,"'\\1'")
gsub - это метод "глобальной замены" в Строковый класс .Он находит все вхождений данного регулярного выражения и заменяет их строкой, заданной в качестве второго параметра (в отличие от sub, который заменяет только первое вхождение).Эта строка может содержать ссылки на группы, отмеченные () в регулярном выражении.Первая группа - \ 1, вторая - \ 2 и т. Д.
gsub
sub
()
ОБНОВЛЕНО: Я думаю, что вы хотите найти это
(([^,)("])+)
и заменить его на этот
'$1'
ищет что-нибудь 1 или более раз и присваивает его $ 1переменная ячейка из-за использования круглых скобок вокруг "\ d".Заменяющая часть будет использовать то, что находит в качестве значения замены.