package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^ *(<[^\r\n<>]*>)|(\s*<[^\r\n<>]*>\s*)(?=[^\r\n<]*$)|<\/?color[^<>]*>`)
var str = `<color=#3D8CBF>using</color> <color=#00FFFF> aaa <Dont remove this tag> System</color>.Collections;
<color=#3D8CBF>using</color> <color=#00FFFF>System</color>.Collections.Generic;
<color=#3D8CBF>using</color> <color=#00FFFF>UnityEngine</color>;
<color=#3D8CBF>public</color> <color=#3D8CBF>class</color> ChangePosition : <color=#00FF00>MonoBehaviour</color> {
<color=#0000FF>// Update <color=#3D8CBF>is</color> called once per frame
</color>
<color=#3D8CBF>void</color> Update()
{
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.BeginSample("Test 1");
Test1();
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.EndSample();
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.BeginSample("Test 2");
Test2();
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.EndSample();
}
}
`
var substitution = "\1\2"
fmt.Println(re.ReplaceAllString(str, substitution))
}
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/