package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`<div class="form-group">\s*<label for="(\S*)">(.*)<\/label>\s*<input type="text" class="form-control" id="(.*)" placeholder="(.*)" ng-model="(.*)">\s*<\/div>`)
var str = []byte(`<div class="form-group">
<label for="ENG1">Pattern Design</label>
<input type="text" class="form-control" id="ENG1" placeholder="..." ng-model="currentForm.form10e.ENG1">
</div>`)
var substitution = []byte("<div class="form-group">\n\t<div class="form-inline">\n\t\t<div class="item item-input" for="\1">\n\t\t<span class="input-label">\2</span>\n\t\t<input type="text" class="form-control" id="\3" placeholder="\4" ng-model="\5">\n\t\t</div>\n\t</div>\n</div>")
var count = 1 // negative counter is equivalent to global case (replace all)
str = re.ReplaceAllStringFunc(str, func(s string) string {
if count == 0 {
return s
}
count -= 1
return re.ReplaceAllString(s, substitution)
})
fmt.Println(string(str))
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/