// 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)((?<=\[)\w+)|(\w+(?=\=))|((?<=\=)\d+)|((?<=\=)\[\d,\d\])|((?<=\=)\[\d,\d,\d,\d])|(\"[a-zA-Z\._0-9\s]+\")|(\'[a-zA-Z\._0-9\s]+\')"#).unwrap();
let string = "//完整代码匹配测试
[sprite file=\"1.png\" index=2 rect=[0,0,0,0] pos=[0,2]][sprite file='2.png' index=2 rect=[0,0,0,0]] //这是注释 /comment abcdefg
//宏名称单元测试
[bg]
[bg]
[ bg]
//字符串参数值单元测试
=\"abc\"
=\"ABC\"
=\"_abcABC\"
=\"_abcABC.png\"
=\"_abcABC special.png\"
//参数名单元测试
[bg index=2]
[bg index=2]
[bg index =2]
//int参数值单元测试
[bg index=54687]
[bg index=1 index2=26764]
//pos_t 4位长度的int数组测试
[bg index=0 pos=[1,2,3,4]]
//匹配坐标型 pos_t指长度为2的整数型数组,分别为横坐标x、纵坐标y
[bg index=0 pos=[0,2]
//abcdd asd [vb ] ";
// 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/