How to convert a string to PascalCase using RegEx in Rust

1 Answer

0 votes
fn to_pascal_case(input: &str) -> String {
    let mut input = input.to_string();
    if !input.contains(" ") {
        input = input.replace(r"(?<=[a-z])(?=[A-Z])", " ");
    }
 
    let words: Vec<&str> = input.split_whitespace()
                                .flat_map(|s| s.split('_'))
                                .collect();
 
    let mut result = String::new();
    for word in words {
        if !word.is_empty() {
            result.push_str(&word[0..1].to_uppercase());
            result.push_str(&word[1..].to_lowercase());
        }
    }
 
    result
}
 
fn main() {
    println!("{}", to_pascal_case("get file content"));
    println!("{}", to_pascal_case("get_file_content"));
    println!("{}", to_pascal_case("get______file___content"));
    println!("{}", to_pascal_case("get______file____  content"));
    println!("{}", to_pascal_case("GET FILE CONTENT"));
    println!("{}", to_pascal_case("get    file      content"));
    println!("{}", to_pascal_case("getFileContent"));
}
 
 
      
/*
run:
   
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
Getfilecontent
     
*/

 



answered Feb 23, 2025 by avibootz
edited Feb 24, 2025 by avibootz

Related questions

1 answer 103 views
2 answers 129 views
1 answer 104 views
1 answer 111 views
1 answer 100 views
...