0


0

正規表現に一致する文字列の一部を更新するにはどうすればよいですか

文字列 "(1,2,3,4,5,6)、(1,2,3) "`があります。これを `"( '1'、 '2'、 '3’に変更します。 '4'、 '5'、 '6')、( '1'、 '2'、 '3') "-/([^、)("])/ `を計算するすべての部分を 「$ 1」、「$ 2」 `など

3 Answer


1


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

`gsub`は、http://www.ruby-doc.org/core/classes/String.html#M000817 [String class]の「グローバル置換」メソッドです。 指定された正規表現の*すべて*の出現を検出し、それらを2番目のパラメーターとして指定された文字列で置き換えます(最初の出現のみを置き換える `sub`とは対照的です)。 その文字列には、正規表現で `()`でマークされたグループへの参照を含めることができます。 最初のグループは\ 1、2番目は\ 2などです。


1


Try

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

これは、句読点(ドットを除く)をそのままにして、数字(整数/浮動小数点数)と単語を「引用符で囲まれた」自己に置き換えます。


0


更新済み:これを検索したいと思います

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

そしてこれに置き換えます

'$1'

1回以上検索し、「\ d」を囲む括弧を使用するため、$ 1変数スロットに割り当てます。 交換部品は、検出した値を交換値として使用します。