// 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)(?:\s)*<task action="4" id="94(\d\d\d)00(\d\d)">(?:\s)*<release>(?:\s)*<item type="cost" vitality="\d"(?:\s)*\/>((?:\n|.)*?)<item type="param(?:(?:\n|.)*?)(?=<\/win)((?:\n|.)*?)<\/release>(?:\s)*<\/task>(?:\s)*"#).unwrap();
let string = " <task action=\"4\" id=\"941010010\">
<release>
<item type=\"cost\" vitality=\"1\" />
<item type=\"fight\" npcid=\"1010010\">
<win>
<item type=\"aside\" content=\"[color=#ff7e53]你胜利了![/color]\" auto=\"true\" />
<item type=\"random\">
<item probability=\"0.001\">
<item type=\"reward\" yueli=\"300\" money=\"100\" auto=\"true\">
<item id=\"2801\" num=\"1\" />
</item>
</item>
<item probability=\"0.001\">
<item type=\"reward\" yueli=\"300\" money=\"100\" auto=\"true\">
<item id=\"2901\" num=\"1\" />
</item>
</item>
<item probability=\"0.001\">
<item type=\"reward\" yueli=\"300\" money=\"100\" auto=\"true\">
<item id=\"3001\" num=\"1\" />
</item>
</item>
<item probability=\"0.001\">
<item type=\"reward\" yueli=\"300\" money=\"100\" auto=\"true\">
<item id=\"3101\" num=\"1\" />
</item>
</item>
</item>
<item type=\"param\" key=\"fight-1010010\" action=\"update\" value=\"1\" />
</win>
<lose>
<item type=\"aside\" content=\"[color=#ff7e53]你被{rnpc}打倒在地![/color]\" auto=\"true\" />
</lose>
</item>
</release>
</task>";
let substitution = "\\n\\n\\n\\n<stroy id=\"$17$2\" areaid=\"0\" startid=\"-1\" endid=\"-1\" maxnum='0' interval='0' count=\"0\" type='3'>$3$4</stroy>\\n\\n";
// 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/