如何更新与某些正则表达式匹配的字符串部分

时间:2010-10-28 13:32:28

标签: ruby-on-rails ruby regex string

我有字符串"(1,2,3,4,5,6),(1,2,3)"我想将其更改为"('1','2','3','4','5','6'),('1','2','3')" - 将所有符合/([^,)("])/的部分替换为'$1', '$2'

3 个答案:

答案 0 :(得分:1)

"(1,2,3,4,5,6),(1,2,3)".gsub(/([^,)("]\w*)/,"'\\1'")

gsubString class中的“全局替换”方法。它找到给定正则表达式的所有次出现,并用作为第二个参数给出的字符串替换它们(而不是仅替换第一次出现的sub)。该字符串可以包含对regexp中标有()的组的引用。第一组是\ 1,第二组是\ 2,依此类推。

答案 1 :(得分:1)

尝试

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

这将替换数字(整数/浮点数)和单词及其“引用包围”的自我,同时单独留下标点符号(除了点)。

答案 2 :(得分:0)

更新:我想你想搜索这个

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

并将其替换为

'$1'

查找任何内容一次或多次,并将其分配给$ 1变量槽,因为使用了“\ d”周围的括号。替换部件将使用它找到的替换值。