use regex::Regex;
fn include_dollar_symbol_text(input: &str) -> bool {
// Compile case-insensitive regex to match $word$
let re = Regex::new(r"(?i)\$[a-z]+\$").unwrap();
// Replace matched $word$ with empty string
let cleaned_text = re.replace_all(input, "").to_string();
// Check for any remaining dollar symbols
!cleaned_text.contains('$')
}
fn main() {
println!("{}", include_dollar_symbol_text("abc xy $text$ z")); // ok
println!("{}", include_dollar_symbol_text("abc xy $ text$ z")); // space
println!("{}", include_dollar_symbol_text("abc xy $$ z")); // empty
println!("{}", include_dollar_symbol_text("abc 100 $text$ z")); // ok
println!("{}", include_dollar_symbol_text("abc $1000 $text$ z")); // open $
println!("{}", include_dollar_symbol_text("abc xy $IBM$ z $Microsoft$")); // ok
println!("{}", include_dollar_symbol_text("abc xy $F3$ z")); // include number
println!("{}", include_dollar_symbol_text("abc xy $text z")); // missing close $
}
/*
run:
true
false
false
true
false
true
false
false
*/