使用golang替换.inc文件中的特定行

时间:2015-11-26 11:14:26

标签: regex string file replace go

我有一个名为aab.inc的文件,我有一行 $ VP_Name =&#34;有些消息&#34; 我在golang中编写了一个代码,以便它读取文件aab.inc并删除任何行 单词 VP_Name ,在我的代码中我还包括该行(包含单词 VP_Name < / strong>)替换为 $ VP_Name =&#34;备用消息&#34; 但我的问题是,如果我将该字词设为 $ VP_Name ,它永远不会删除该行并且如果我将替换字替换为 $ VP_Name =&#34;替代消息&#34; =&#34;替代消息&#34; 强>。但如果单独将 VP_Name 一词(不含$)删除该行,则将该行替换为 VP_Name =&#34;替换消息&#34; 如果替换文本给出没有$符号。

我的代码如下

package main

import "fmt"
import "regexp"
import "os"
import "io/ioutil"
func main() {

    ConfigFile1, err := os.Open("aab.inc")
         if err != nil {
                 fmt.Println("Error opening file:", err)
                 return
         }
        defer ConfigFile1.Close()

    ConfigFiledata1, _ := ioutil.ReadAll(ConfigFile1)
    //Try with $VP_Name
    re := regexp.MustCompile("(?m)[\r\n]+^.*VP_Name.*$")
    // Actual Word is $VP_Name="Alternate Message" 
    res := re.ReplaceAllString(string(ConfigFiledata1), "\nVP_Name=\"Alternate Message\"")

    fmt.Println(res)    

    out := []byte(res)
    if err := ioutil.WriteFile("aab_final.inc",out, 0666); err != nil {
            fmt.Println(err)
            os.Exit(1)
        }
}

新替换的行应该在下一行中不应附加任何其他行,但即使我在替换文本之前使用\ n,结果如下所示

输出

$VP_Roll="";VP_Name="Alternate Message";
$VP_Failure="Yes";

在代码中包含$以及为什么文本未在新行中替换,甚至指定了\ n是什么问题。

先谢谢

0 个答案:

没有答案