使用正则表达式替换Go中的文本

时间:2018-01-26 19:27:40

标签: regex go

我在Go工作,我有一个文本文件,我想在其中替换基于正则表达式的文本,但即使我已经测试了正则表达式here,它也没有按预期工作它说那里有匹配。

我在游戏场上做了基本的例子,我得到了相同的结果。我有3个具有相同标签的文本文件(// == start ==和// == end ==),它适用于第一个,但第二个和第三个没有。什么可以避免正则表达式正确替换文本?

https://play.golang.org/p/nZdHg5IfZ89

这是我使用的代码,我粘贴了所有字符串,因为我想确定它不是影响我的那个

package main

func main() {

    var re = regexp.MustCompile(Myregex)
    s := re.ReplaceAllLiteralString(originalString,"replaced")
    fmt.Println(s)

}

var Myregex = `\/\/==start==\n(.+\n)*\/\/==end==`

var originalString = `// @Author: someone
// @Date:   2018-01-23T16:46:09-04:00
// @Email:  dddddddd@gmail.com
// @Filename: _material.themes.scss
// @Last modified by:   Someone
// @Last modified time: 2018-01-23T18:40:39-04:00

@include angular-material-theme($theme);

.app-dark {
    @include angular-material-theme($dark-theme);
}

.app-pink {
    @include angular-material-theme($pink-theme);
}

//==start==
//==end==`

1 个答案:

答案 0 :(得分:2)

希望这会对你有所帮助

func main() {
    var re = regexp.MustCompile(Myregex)
    s := re.ReplaceAllString(originalString, "replaced")
    fmt.Println(s)
}

var Myregex = `//==start==\n.*\n//==end==`

请参阅操作:https://play.golang.org/p/GITAdHOOQOg