Как я могу обновить части строки, которые соответствуют некоторому регулярному выражению - PullRequest
0 голосов
/ 28 октября 2010

У меня есть строка "(1,2,3,4,5,6),(1,2,3)" Я хотел бы изменить ее на "('1','2','3','4','5','6'),('1','2','3')" - заменить все части, которые используются /([^,)("])/ на '$1', '$2' и т. Д.

Ответы [ 3 ]

1 голос
/ 28 октября 2010

Попробуйте

mystring.gsub(/([\w.]+)/, '\'\1\'')

Это заменит числа (целые числа / числа с плавающей запятой) и слова на их «окруженные кавычками» значения, оставляя только знаки препинания (кроме точки).

1 голос
/ 28 октября 2010
"(1,2,3,4,5,6),(1,2,3)".gsub(/([^,)("]\w*)/,"'\\1'")

gsub - это метод "глобальной замены" в Строковый класс .Он находит все вхождений данного регулярного выражения и заменяет их строкой, заданной в качестве второго параметра (в отличие от sub, который заменяет только первое вхождение).Эта строка может содержать ссылки на группы, отмеченные () в регулярном выражении.Первая группа - \ 1, вторая - \ 2 и т. Д.

0 голосов
/ 28 октября 2010

ОБНОВЛЕНО: Я думаю, что вы хотите найти это

(([^,)("])+)

и заменить его на этот

'$1'

ищет что-нибудь 1 или более раз и присваивает его $ 1переменная ячейка из-за использования круглых скобок вокруг "\ d".Заменяющая часть будет использовать то, что находит в качестве значения замены.

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