// 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)(?#skip match process when S exist, or remove optional left most target T, capture left and right part of T.
Use case: if N is not exist, modify/change T to N, or create N. If any create or modify write operated, appending output N to right.
skip exist:)^(?!.*S)(?#
captrue prefix :)^(.*?)(?#
optional target to remove:)(?:T|$)(?#
captrue postfix:)(.*?)$(?#
Test string:
aa
aaT
Tcc
aaTcc
aaTbbTcc
aaS
aaTS
TccS
aaTccS
Saa
SaaT
STcc
SaaTcc
Substitution: $1$2N
Return:
aaN
aaN
ccN
aaccN
aabbTccN
aaS
aaTS
TccS
aaTccS
Saa
SaaT
STcc
SaaTcc)").unwrap();
let string = "aa
aaT
Tcc
aaTcc
aaTbbTcc
aaS
aaTS
TccS
aaTccS
Saa
SaaT
STcc
SaaTcc";
let substitution = "$1$2N";
// 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/