Pārlūkot izejas kodu

allow StringUtil.findAllMatches to return multiple groups

tags/2.0.1
Jonathan Cobb pirms 4 gadiem
vecāks
revīzija
dfafe62c7e
2 mainītis faili ar 17 papildinājumiem un 7 dzēšanām
  1. +4
    -4
      src/main/java/org/cobbzilla/util/http/HttpUtil.java
  2. +13
    -3
      src/main/java/org/cobbzilla/util/string/StringUtil.java

+ 4
- 4
src/main/java/org/cobbzilla/util/http/HttpUtil.java Parādīt failu

@@ -32,6 +32,7 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -49,8 +50,7 @@ import static org.cobbzilla.util.io.FileUtil.getDefaultTempDir;
import static org.cobbzilla.util.json.JsonUtil.COMPACT_MAPPER;
import static org.cobbzilla.util.json.JsonUtil.json;
import static org.cobbzilla.util.security.CryptStream.BUFFER_SIZE;
import static org.cobbzilla.util.string.StringUtil.CRLF;
import static org.cobbzilla.util.string.StringUtil.urlEncode;
import static org.cobbzilla.util.string.StringUtil.*;
import static org.cobbzilla.util.system.Sleep.sleep;
import static org.cobbzilla.util.time.TimeUtil.DATE_FORMAT_LAST_MODIFIED;

@@ -564,13 +564,13 @@ public class HttpUtil {
System.out.println("dest = "+dest);
}

public static List<String> applyRegexToUrl(String url, List<NameAndValue> headers, String regex, Integer group) {
public static List<Map<Integer, String>> applyRegexToUrl(String url, List<NameAndValue> headers, String regex, Collection<Integer> groups) {
final HttpRequestBean requestBean = new HttpRequestBean(GET, url).setHeaders(headers);
final HttpClientBuilder clientBuilder = requestBean.initClientBuilder(HttpClients.custom().disableRedirectHandling());
try {
@Cleanup final CloseableHttpClient client = clientBuilder.build();
final HttpResponseBean responseBean = HttpUtil.getResponse(requestBean, client);
return StringUtil.findAllMatches(responseBean.getEntityString(), regex, group);
return findAllMatches(responseBean.getEntityString(), regex, groups);
} catch (Exception e) {
log.error("applyRegexToUrl: error: "+shortError(e));
}


+ 13
- 3
src/main/java/org/cobbzilla/util/string/StringUtil.java Parādīt failu

@@ -558,11 +558,21 @@ public class StringUtil {

public static String sqlEscapeAndQuote(String val) { return "'" + escapeSql(val) + "'"; }

public static List<String> findAllMatches(String val, String regex, Integer group) {
public static List<Map<Integer, String>> findAllMatches(String val, String regex, Collection<Integer> groups) {
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(val);
final List<String> matches = new ArrayList<>();
while (matcher.find()) matches.add(group == null ? matcher.group() : matcher.group(group));
final List<Map<Integer, String>> matches = new ArrayList<>();
while (matcher.find()) {
final Map<Integer, String> match = new HashMap<>();
if (groups == null) {
match.put(0, matcher.group());
} else {
for (Integer group : groups) {
match.put(group, group == 0 ? matcher.group() : group > matcher.groupCount() ? null : matcher.group(group));
}
}
matches.add(match);
}
return matches;
}



Notiek ielāde…
Atcelt
Saglabāt