// 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)\[[+-]?([048]|\d*([02468][048]|[13579][26]))\]").unwrap();
let string = "\"[+05620]\" // 5620 is divisible by 4 (valid)
\"[+05621]\" // 5621 is not divisible by 4 (invalid)
\"[-55622]\" // -55622 is not divisible by 4 (invalid)
\"[005623]\" // 5623 invalid
\"[005624]\" // 5624 valid
\"[-05628]\" // valid
\"[005632]\" // valid
\"[555636]\" // valid
\"[+05640]\" // valid
\"[005600]\" // valid
\"[8.04]\" // invalid
\"[8.00]\" // valid
\"[-0]\"
\"...may be [+002016] will be.\"
\"[+05621]\", \"[-55622]\",
\"[005623]\", \"[~24]\", \"[8.04]\",
\"No, [2014] isn't a multiple of 4...\"
\"[0]\"
\"[4]\"
\"[8]\"
\"[12]\"
\"[16]\"
\"[20]\"
\"[24]\"
\"[28]\"
\"[32]\"
\"[36]\"
\"[40]\"
\"[44]\"
\"[48]\"
\"[52]\"
\"[56]\"
\"[60]\"
\"[64]\"
\"[68]\"
\"[72]\"
\"[76]\"
\"[80]\"
\"[84]\"
\"[88]\"
\"[92]\"
\"[96]\"
\"[100]\"
\"[104]\"
\"[108]\"
\"[112]\"
\"[116]\"
\"[120]\"
\"[124]\"
\"[128]\"
\"[1]\"
\"[2]\"
\"[3]\"
\"[5]\"
\"[6]\"
\"[7]\"
\"[9]\"
\"[10]\"
\"[11]\"
\"[13]\"
\"[14]\"
\"[15]\"
\"[17]\"
\"[18]\"
\"[19]\"
\"[21]\"
\"[22]\"
\"[23]\"
\"[25]\"
\"[26]\"
\"[27]\"
\"[29]\"
\"[30]\"
\"[31]\"
\"[33]\"
\"[34]\"
\"[35]\"
\"[37]\"
\"[38]\"
\"[39]\"
\"[41]\"
\"[42]\"
\"[43]\"
\"[45]\"
\"[46]\"
\"[47]\"
\"[49]\"
\"[50]\"
\"[51]\"
\"[53]\"
\"[54]\"
\"[55]\"
\"[57]\"
\"[58]\"
\"[59]\"
\"[61]\"
\"[62]\"
\"[63]\"
\"[65]\"
\"[66]\"
\"[67]\"
\"[69]\"
\"[70]\"
\"[71]\"
\"[73]\"
\"[74]\"
\"[75]\"
\"[77]\"
\"[78]\"
\"[79]\"
\"[81]\"
\"[82]\"
\"[83]\"
\"[85]\"
\"[86]\"
\"[87]\"
\"[89]\"
\"[90]\"
\"[91]\"
\"[93]\"
\"[94]\"
\"[95]\"
\"[97]\"
\"[98]\"
\"[99]\"
\"[101]\"
\"[102]\"
\"[103]\"
\"[105]\"
\"[106]\"
\"[107]\"
\"[109]\"
\"[110]\"
\"[111]\"
\"[113]\"
\"[114]\"
\"[115]\"
\"[117]\"
\"[118]\"
\"[119]\"
\"[121]\"
\"[122]\"
\"[123]\"
\"[125]\"
\"[126]\"
\"[127]\"
\"[129]\"
0
4
8
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
112
116
120
124
128
1
2
3
5
6
7
9
10
11
13
14
15
17
18
19
21
22
23
25
26
27
29
30
31
33
34
35
37
38
39
41
42
43
45
46
47
49
50
51
53
54
55
57
58
59
61
62
63
65
66
67
69
70
71
73
74
75
77
78
79
81
82
83
85
86
87
89
90
91
93
94
95
97
98
99
101
102
103
105
106
107
109
110
111
113
114
115
117
118
119
121
122
123
125
126
127
129";
// 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/