How to get the substring between two substrings in Rust

1 Answer

0 votes
fn substring_between_two_substrings(str: &str, suba: &str, subb: &str) -> String {
    let pos_a = str.find(suba);
    let pos_b = str.rfind(subb);

    if pos_a.is_none() {
        return String::new();
    }

    if pos_b.is_none() {
        return String::new();
    }

    let index_end_suba = pos_a.unwrap() + suba.len();
    if index_end_suba >= pos_b.unwrap() {
        return String::new();
    }

    str[index_end_suba..pos_b.unwrap()].to_string()
}

fn main() {
    let str = "Rust C#:C C++:Java:Python";

    println!("{}", substring_between_two_substrings(str, "C#", "Java"));
}


   
   
/*
run:
   
:C C++:
   
*/

 



answered Aug 3, 2024 by avibootz
...