// 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)(?:\"(?:(?<=\"(?=[^\n]))[^\n]+?(?=(?<!\\))(?=\"))?\")|(\B'(?:(?<='(?=[^\n]))[^\n]+?(?=(?<!\\))(?='))?')"#).unwrap();
let string = "
1. Valid double-quoted strings:
- \"Hello\"
- \"This is a test\"
- \"123\"
- \"Special characters: @#$%^&*()_+\"
- \"Escape sequence: \\n\"
2. Valid double-quoted strings with additional characters or variables:
- \" test aaaaa \\\" \" + asdf
- \" test \" + ( \"aaaaa\" ) + gdf
- \" test \\\" \" + `\" aaaa \" + dfg
- \" test ' aaaaa \\\" \" + dfg
- \"\"
3. Valid double-quoted strings with special characters:
- \"sas''as\\\"a1\\'2 ! -_?:sa\"
- \"''\"
- \"\\abnb\\ajhgf\\crt098& \\\"'\"
4. Invalid double-quoted strings:
- \" test \" + ( \"aaaaa\" ) \\\" saf
- \"\\\\ + \\* test \" \\$ \\. dsdfs
- (\\\" test \\\" \" + \" aaaa \" sfgd
- ' test ' + aas ( \"aaaaa\" ) + '\\ sd
- '\\\\ + \\* test ' \\$ \\. trace
- (' test ' as ' + ' aaaa '
- '\"\"'
- '\"sas'
- 'ads'
- 'asdasd\\\"asdsa'
- \"klkl\"klkl
- \"asa\\'sasa\\\\\"
- \\'\\\\\\'
- \"hhhh\"klkl\"
- 'jkjkjk'klklk'
- '\\\"\\\\\\\"'
- ''
- '\\\"asa\\'sasa\\\\\\\"'
- \"sasasasa\\\\\\\\\\\\\"
1. Valid single-quoted strings:
- 'Hello'
- 'This is a test'
- '123'
- 'Special characters: @#$%^&*()_+'
- 'Escape sequence: \\n'
2. Valid single-quoted strings with additional characters or variables:
- ' test aaaaa \\' ' + asdf
- ' test ' + ( 'aaaaa' ) + gdf
- ' test \\' ' + ' aaaa' + dfg
- ' test \" aaaaa \\' ' + dfg
- ''
3. Valid single-quoted strings with special characters:
- 'sas\"\"as\\'a1\\\"2 ! -_?:sa'
- '\"\"'
- '\\abnb\\ajhgf\\crt098& \\'\"\"'
4. Invalid single-quoted strings:
- ' test ' + ( 'aaaaa' ) \\' saf
- '\\\\ + \\* test ' \\$ \\. dsdfs
- (\\' test \\' + ' aaaa ' sfgd
- \" test \\\" \" + \" aaaa \" sfgd
- ' test ' + aas ( 'aaaaa' ) + '\\ sd
- '\\\\ + \\* test ' \\$ \\. trace
- (' test ' as ' + ' aaaa '
- \"''\"
- 'sas\"
- \"ads'
- 'asdasd\\'asdsa'
- \"klkl\"klkl
- \"asa\\'sasa\\\\\"
- \\'\\\\\\'
- 'hhhh\"klkl\\'\\
- \\'jkjkjk\"klklk'
- \"\\'\\\\\\'\"
- ''
- '\\\"asa\\'sasa\\\\\\\"'
- 'sasasasa\\\\\\\\\\\\'
";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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/