做gsub后删除2行

时间:2014-04-09 19:46:18

标签: ruby

我有一个文件,我需要在特定位置用2行代替4行,第一行我可以用以下代码成功替换。但是,现在我已经替换了第一行,如何用文本“// comment”替换下一行..并删除后面的两行?

例如:

String keyString = row.getKey();
// see Table T1002.
KeyParser keyParser;
keyParser.parseKey(keystr, key);

要:

Key& key = getKey();
//comment
到目前为止

代码:

text = File.read(filepath)
replace = text.gsub(/String keyString = row.getKey\(\);/, 'Key& key = getKey();')
File.open(filepath, "w") {|file| file.puts replace}

PS:如何指定搜索字符串而不必转义括号

1 个答案:

答案 0 :(得分:2)

使用此:

text.gsub(/String keyString = row\.getKey\(\);\s+\/\/.*?[\n\r](.*?[\n\r]){2}/, "Key& key = getKey();\n// comment")

正则表达式(.*?[\n\r]){2}表示两行。并且\s+\/\/.*?[\n\r]表示包含当前评论的行。