154 time = adjust_time(time, "min", 30); |
154 time = adjust_time(time, "min", 30); |
155 end |
155 end |
156 end }; |
156 end }; |
157 } |
157 } |
158 |
158 |
159 local ret, pos; |
159 local ret, min_pos, max_pos; |
160 for _, pattern in pairs(patterns) do |
160 for _, pattern in pairs(patterns) do |
161 ret = lpeg.match(lpeg.P{ pattern[1] + 1 * lpeg.V(1) }, str); |
161 ret = lpeg.match(lpeg.P{ lpeg.Cp()*pattern[1] + 1 * lpeg.V(1) } |
|
162 /function (start) start = start - 1; if not min_pos or start < min_pos then min_pos = start; end end, str); |
162 if ret then |
163 if ret then |
163 pos = ret; |
164 if not max_pos or ret > max_pos then max_pos = ret; end |
164 --print("Matches ".._.." until "..ret); |
165 --print("Matches ".._.." until "..ret); |
165 end |
166 end |
166 end |
167 end |
167 |
168 |
168 return time, pos; |
169 return time, min_pos, max_pos; |
169 end |
170 end |
170 |
171 |