View Javadoc
1   package us.codecraft.webmagic.selector;
2   
3   import java.util.List;
4   import java.util.regex.Matcher;
5   import java.util.regex.Pattern;
6   import java.util.regex.PatternSyntaxException;
7   
8   /**
9    * Replace selector.<br>
10   *
11   * @author code4crafter@gmail.com <br>
12   * @since 0.1.0
13   */
14  public class ReplaceSelector implements Selector {
15  
16      private String regexStr;
17  
18      private String replacement;
19  
20      private Pattern regex;
21  
22      public ReplaceSelector(String regexStr, String replacement) {
23          this.regexStr = regexStr;
24          this.replacement = replacement;
25          try {
26              regex = Pattern.compile(regexStr);
27          } catch (PatternSyntaxException e) {
28              throw new IllegalArgumentException("invalid regex", e);
29          }
30      }
31  
32      @Override
33      public String select(String text) {
34          Matcher matcher = regex.matcher(text);
35          return matcher.replaceAll(replacement);
36      }
37  
38      @Override
39      public List<String> selectList(String text) {
40          throw new UnsupportedOperationException();
41      }
42  
43      @Override
44      public String toString() {
45          return regexStr + "_" + replacement;
46      }
47  
48  }