// 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"(?i)(?!\bTAG_|\bSECUENCIA_)\w*").unwrap();
let string = " <DATOS>
<SECUENCIA_A>
<TAG_28E_A>
<NUM_PAGINA_28E_A>String</NUM_PAGINA_28E_A>
<IND_PAGINA_28E_A>String</IND_PAGINA_28E_A>
</TAG_28E_A>
<TAG_20C_SEME>
<REFER_20C>String</REFER_20C>
</TAG_20C_SEME>
<TAG_23G_A>
<FUNCION_23G>String</FUNCION_23G>
<SUBFUNCION_23G>String</SUBFUNCION_23G>
</TAG_23G_A>
<TAG_98C_PREP>
<FECHA_98C>String</FECHA_98C>
<HORA_98C>String</HORA_98C>
</TAG_98C_PREP>
<TAG_98A_STAT>
<FECHA_98A>String</FECHA_98A>
</TAG_98A_STAT>
<TAG_22F_SFRE>
<IND_22F>String</IND_22F>
</TAG_22F_SFRE>
<TAG_22F_CODE>
<IND_22F>String</IND_22F>
</TAG_22F_CODE>
<TAG_22F_STTY>
<IND_22F>String</IND_22F>
</TAG_22F_STTY>
<TAG_22F_STBA>
<IND_22F>String</IND_22F>
</TAG_22F_STBA>
<SECUENCIA_A1>
<TAG_13A_LINK>
<IND_13A>String</IND_13A>
</TAG_13A_LINK>
<TAG_20C_RELA>
<REFER_20C>String</REFER_20C>
</TAG_20C_RELA>
</SECUENCIA_A1>";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
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/