如何只替换Ruby代码中的部分字符串?
假设我有一个文本文件,其中包含多次出现的关键字“JVM_MEM_ARGS_64BIT”
JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
我只想替换第一次出现,我可以使用#sub而不是gsub
a.sub('JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m"', 'JVM_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"')
但并非所有文件都包含
JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
有些可能是
JVM_MEM_ARGS_64BIT="-Xms256m -Xmx512m"
我不确定如何在ruby代码中执行此操作?我只能搜索关键字“JVM_MEM_ARGS_64BIT”,但如何删除现有的值赋值并将其替换为JVM_MEM_ARGS_64BIT =“ - Xms512m -Xmx1024m
新手Ruby开发人员。
答案 0 :(得分:1)
String#sub
接受正则表达式作为第一个参数:
replacement = 'JVM_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"'
a.sub(/JVM_MEM_ARGS_64BIT="-Xms\d+m -Xmx\d+m"/, replacement)