// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?m)^ *(<[^\r\n<>]*>)|(\s*<[^\r\n<>]*>\s*)(?=[^\r\n<]*$)|<\/?color[^<>]*>").unwrap();
let string = "<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();
}
}
";
let substitution = "\\1\\2";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/