1 package us.codecraft.webmagic.utils;
2
3 import us.codecraft.webmagic.Request;
4
5 import java.util.ArrayList;
6 import java.util.Collections;
7 import java.util.List;
8 import java.util.regex.Matcher;
9 import java.util.regex.Pattern;
10
11
12
13
14
15
16 public abstract class RequestUtils {
17
18 private static Pattern p4Range = Pattern.compile("\\[(\\d+)\\-(\\d+)\\]");
19
20 public static List<Request> from(String exp){
21 Matcher matcher = p4Range.matcher(exp);
22 if (!matcher.find()) {
23 return Collections.singletonList(new Request(exp));
24 }
25 int rangeFrom = Integer.parseInt(matcher.group(1));
26 int rangeTo = Integer.parseInt(matcher.group(2));
27 if (rangeFrom > rangeTo) {
28 return Collections.emptyList();
29 }
30 List<Request> requests = new ArrayList<Request>(rangeTo - rangeFrom + 1);
31 for (int i = rangeFrom; i <= rangeTo; i++) {
32 requests.add(new Request(matcher.replaceAll(String.valueOf(i))));
33 }
34 return requests;
35 }
36
37 }