public static RegexSelector regex(String expr, int group) { return new RegexSelector(expr,group); }
public RegexSelector(String regexStr, int group) { this.compileRegex(regexStr); this.group = group; }
@Override public String select(String text) { return selectGroup(text).get(group); }
@Override public List<String> selectList(String text) { List<String> strings = new ArrayList<String>(); List<RegexResult> results = selectGroupList(text); for (RegexResult result : results) { strings.add(result.get(group)); } return strings; }
@Override public List<String> selectList(String text) { List<String> strings = new ArrayList<String>(); List<RegexResult> results = selectGroupList(text); for (RegexResult result : results) { strings.add(result.get(group)); } return strings; }
public static RegexSelector regex(String expr) { return new RegexSelector(expr); }
/** * Create a RegexSelector. When there is no capture group, the value is set to 0 else set to 1. * @param regexStr */ public RegexSelector(String regexStr) { this.compileRegex(regexStr); if (regex.matcher("").groupCount() == 0) { this.group = 0; } else { this.group = 1; } }
@Override public String select(String text) { return selectGroup(text).get(group); }
private FieldExtractor getAnnotationExtractByUrl(Class clazz, Field field) { FieldExtractor fieldExtractor = null; ExtractByUrl extractByUrl = field.getAnnotation(ExtractByUrl.class); if (extractByUrl != null) { String regexPattern = extractByUrl.value(); if (regexPattern.trim().equals("")) { regexPattern = ".*"; } fieldExtractor = new FieldExtractor(field, new RegexSelector(regexPattern), FieldExtractor.Source.Url, extractByUrl.notNull(), extractByUrl.multi() || List.class.isAssignableFrom(field.getType())); Method setterMethod = getSetterMethod(clazz, field); if (setterMethod != null) { fieldExtractor.setSetterMethod(setterMethod); } } return fieldExtractor; }
public RegexSelector(String regexStr, int group) { this.compileRegex(regexStr); this.group = group; }
public static Selector getSelector(ExtractBy extractBy) { String value = extractBy.value(); Selector selector; switch (extractBy.type()) { case Css: selector = new CssSelector(value); break; case Regex: selector = new RegexSelector(value); break; case XPath: selector = new XpathSelector(value); break; case JsonPath: selector = new JsonPathSelector(value); break; default: selector = new XpathSelector(value); } return selector; }
/** * Create a RegexSelector. When there is no capture group, the value is set to 0 else set to 1. * @param regexStr */ public RegexSelector(String regexStr) { this.compileRegex(regexStr); if (regex.matcher("").groupCount() == 0) { this.group = 0; } else { this.group = 1; } }
public static RegexSelector regex(String expr) { return new RegexSelector(expr); }
public static RegexSelector regex(String expr, int group) { return new RegexSelector(expr,group); }