2016-12-20 4 views
0

Rubyコードの文字列の一部のみを置き換えるにはどうすればよいですか?Rubyは一致する文字列の一部のみを置き換えます

私はキーワード「JVM_MEM_ARGS_64BIT」

JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m" 

と私は最初のオカレンスだけを交換したいの複数の発生を含むテキストファイルを持っているはず、私の代わりにGSUBの#subを使用することができます

a.sub('JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m"', 'JVM_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"') 

しかし、すべてのファイルが

JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m" 

一部COUが含まれていませんld be

JVM_MEM_ARGS_64BIT="-Xms256m -Xmx512m" 

ルビーコードでこれを行う方法がわかりませんか?私はキーワードに「JVM_MEM_ARGS_64BIT」を検索することができますが、どのように私は、既存の値の割り当てを削除し、JVM_MEM_ARGS_64BIT = "と交換しない - Xms512m -Xmx1024m

初心者のRuby開発者

+1

'サブ - ' – mudasobwa

+0

申し訳ありませんが、あなたは私が試みることができることをスニペット私のコードを(/ JVM_MEM_ARGS_64BIT = "のX ms \ D + M -Xmx \ D + M" /、...)与えることができますか?私はまだRubyコーディングに精通していません。ありがとう –

+0

私はそれを与えたと思った: 'a.sub(/ JVM_MEM_ARGS_64BIT =" - Xms \ d + m -Xmx \ d + m "/、 'JVM_MEM _ARGS_64BIT = " - Xms512m-Xmx1024m" ') '。 – mudasobwa

答えて

1

String#subが最初のように正規表現を受け入れます。 PARAM:

replacement = 'JVM_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"' 
a.sub(/JVM_MEM_ARGS_64BIT="-Xms\d+m -Xmx\d+m"/, replacement) 
関連する問題