All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.doyospy.core.util.ReUtil Maven / Gradle / Ivy

Go to download

Doyospy是一个小而全的基于SpringBoot的java工具类库,通过静态方法封装,方便开发者使用,降低学习成本并提升工作效率。

The newest version!
//package com.doyospy.core.util;
//
//import java.util.*;
//import java.util.function.Consumer;
//import java.util.regex.MatchResult;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//public class ReUtil {
//    public static final String RE_CHINESE = "[⺀-\u2eff⼀-\u2fdf㇀-\u31ef㐀-䶿一-\u9fff豈-\ufaff\ud840\udc00-\ud869\udedf\ud869\udf00-\ud86d\udf3f\ud86d\udf40-\ud86e\udc1f\ud86e\udc20-\ud873\udeaf\ud87e\udc00-\ud87e\ude1f]";
//    public static final String RE_CHINESES = "[⺀-\u2eff⼀-\u2fdf㇀-\u31ef㐀-䶿一-\u9fff豈-\ufaff\ud840\udc00-\ud869\udedf\ud869\udf00-\ud86d\udf3f\ud86d\udf40-\ud86e\udc1f\ud86e\udc20-\ud873\udeaf\ud87e\udc00-\ud87e\ude1f]+";
//    public static final Set RE_KEYS = CollUtil.newHashSet(new Character[]{'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'});
//
//    public ReUtil() {
//    }
//
//    public static String getGroup0(String regex, CharSequence content) {
//        return get((String)regex, content, 0);
//    }
//
//    public static String getGroup1(String regex, CharSequence content) {
//        return get((String)regex, content, 1);
//    }
//
//    public static String get(String regex, CharSequence content, int groupIndex) {
//        if (null != content && null != regex) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return get(pattern, content, groupIndex);
//        } else {
//            return null;
//        }
//    }
//
//    public static String get(String regex, CharSequence content, String groupName) {
//        if (null != content && null != regex) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return get(pattern, content, groupName);
//        } else {
//            return null;
//        }
//    }
//
//    public static String getGroup0(Pattern pattern, CharSequence content) {
//        return get((Pattern)pattern, content, 0);
//    }
//
//    public static String getGroup1(Pattern pattern, CharSequence content) {
//        return get((Pattern)pattern, content, 1);
//    }
//
//    public static String get(Pattern pattern, CharSequence content, int groupIndex) {
//        if (null != content && null != pattern) {
//            MutableObj result = new MutableObj();
//            get(pattern, content, (matcher) -> {
//                result.set(matcher.group(groupIndex));
//            });
//            return (String)result.get();
//        } else {
//            return null;
//        }
//    }
//
//    public static String get(Pattern pattern, CharSequence content, String groupName) {
//        if (null != content && null != pattern && null != groupName) {
//            MutableObj result = new MutableObj();
//            get(pattern, content, (matcher) -> {
//                result.set(matcher.group(groupName));
//            });
//            return (String)result.get();
//        } else {
//            return null;
//        }
//    }
//
//    public static void get(Pattern pattern, CharSequence content, Consumer consumer) {
//        if (null != content && null != pattern && null != consumer) {
//            Matcher m = pattern.matcher(content);
//            if (m.find()) {
//                consumer.accept(m);
//            }
//
//        }
//    }
//
//    public static List getAllGroups(Pattern pattern, CharSequence content) {
//        return getAllGroups(pattern, content, true);
//    }
//
//    public static List getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0) {
//        return getAllGroups(pattern, content, withGroup0, false);
//    }
//
//    public static List getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0, boolean findAll) {
//        if (null != content && null != pattern) {
//            ArrayList result = new ArrayList();
//            Matcher matcher = pattern.matcher(content);
//
//            while(matcher.find()) {
//                int startGroup = withGroup0 ? 0 : 1;
//                int groupCount = matcher.groupCount();
//
//                for(int i = startGroup; i <= groupCount; ++i) {
//                    result.add(matcher.group(i));
//                }
//
//                if (!findAll) {
//                    break;
//                }
//            }
//
//            return result;
//        } else {
//            return null;
//        }
//    }
//
//    public static Map getAllGroupNames(Pattern pattern, CharSequence content) {
//        if (null != content && null != pattern) {
//            Matcher m = pattern.matcher(content);
//            Map result = MapUtil.newHashMap(m.groupCount());
//            if (m.find()) {
//                Map map = (Map)ReflectUtil.invoke(pattern, "namedGroups", new Object[0]);
//                map.forEach((key, value) -> {
//                    String var10000 = (String)result.put(key, m.group(value));
//                });
//            }
//
//            return result;
//        } else {
//            return null;
//        }
//    }
//
//    public static String extractMulti(Pattern pattern, CharSequence content, String template) {
//        if (null != content && null != pattern && null != template) {
//            TreeSet varNums = new TreeSet((o1, o2) -> {
//                return ObjectUtil.compare(o2, o1);
//            });
//            Matcher matcherForTemplate = PatternPool.GROUP_VAR.matcher(template);
//
//            while(matcherForTemplate.find()) {
//                varNums.add(Integer.parseInt(matcherForTemplate.group(1)));
//            }
//
//            Matcher matcher = pattern.matcher(content);
//            if (!matcher.find()) {
//                return null;
//            } else {
//                Integer group;
//                for(Iterator var6 = varNums.iterator(); var6.hasNext(); template = template.replace("$" + group, matcher.group(group))) {
//                    group = (Integer)var6.next();
//                }
//
//                return template;
//            }
//        } else {
//            return null;
//        }
//    }
//
//    public static String extractMulti(String regex, CharSequence content, String template) {
//        if (null != content && null != regex && null != template) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return extractMulti(pattern, content, template);
//        } else {
//            return null;
//        }
//    }
//
//    public static String extractMultiAndDelPre(Pattern pattern, Mutable contentHolder, String template) {
//        if (null != contentHolder && null != pattern && null != template) {
//            HashSet varNums = (HashSet)findAll((Pattern)PatternPool.GROUP_VAR, template, 1, new HashSet());
//            CharSequence content = (CharSequence)contentHolder.get();
//            Matcher matcher = pattern.matcher(content);
//            if (!matcher.find()) {
//                return null;
//            } else {
//                String var;
//                int group;
//                for(Iterator var6 = varNums.iterator(); var6.hasNext(); template = template.replace("$" + var, matcher.group(group))) {
//                    var = (String)var6.next();
//                    group = Integer.parseInt(var);
//                }
//
//                contentHolder.set(StrUtil.sub(content, matcher.end(), content.length()));
//                return template;
//            }
//        } else {
//            return null;
//        }
//    }
//
//    public static String extractMultiAndDelPre(String regex, Mutable contentHolder, String template) {
//        if (null != contentHolder && null != regex && null != template) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return extractMultiAndDelPre(pattern, contentHolder, template);
//        } else {
//            return null;
//        }
//    }
//
//    public static String delFirst(String regex, CharSequence content) {
//        if (StrUtil.hasBlank(new CharSequence[]{regex, content})) {
//            return StrUtil.str(content);
//        } else {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return delFirst(pattern, content);
//        }
//    }
//
//    public static String delFirst(Pattern pattern, CharSequence content) {
//        return replaceFirst(pattern, content, "");
//    }
//
//    public static String replaceFirst(Pattern pattern, CharSequence content, String replacement) {
//        return null != pattern && !StrUtil.isEmpty(content) ? pattern.matcher(content).replaceFirst(replacement) : StrUtil.str(content);
//    }
//
//    public static String delLast(String regex, CharSequence str) {
//        if (StrUtil.hasBlank(new CharSequence[]{regex, str})) {
//            return StrUtil.str(str);
//        } else {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return delLast(pattern, str);
//        }
//    }
//
//    public static String delLast(Pattern pattern, CharSequence str) {
//        if (null != pattern && StrUtil.isNotEmpty(str)) {
//            MatchResult matchResult = lastIndexOf(pattern, str);
//            if (null != matchResult) {
//                return StrUtil.subPre(str, matchResult.start()) + StrUtil.subSuf(str, matchResult.end());
//            }
//        }
//
//        return StrUtil.str(str);
//    }
//
//    public static String delAll(String regex, CharSequence content) {
//        if (StrUtil.hasEmpty(new CharSequence[]{regex, content})) {
//            return StrUtil.str(content);
//        } else {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return delAll(pattern, content);
//        }
//    }
//
//    public static String delAll(Pattern pattern, CharSequence content) {
//        return null != pattern && !StrUtil.isEmpty(content) ? pattern.matcher(content).replaceAll("") : StrUtil.str(content);
//    }
//
//    public static String delPre(String regex, CharSequence content) {
//        if (null != content && null != regex) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return delPre(pattern, content);
//        } else {
//            return StrUtil.str(content);
//        }
//    }
//
//    public static String delPre(Pattern pattern, CharSequence content) {
//        if (null != content && null != pattern) {
//            Matcher matcher = pattern.matcher(content);
//            return matcher.find() ? StrUtil.sub(content, matcher.end(), content.length()) : StrUtil.str(content);
//        } else {
//            return StrUtil.str(content);
//        }
//    }
//
//    public static List findAllGroup0(String regex, CharSequence content) {
//        return findAll((String)regex, content, 0);
//    }
//
//    public static List findAllGroup1(String regex, CharSequence content) {
//        return findAll((String)regex, content, 1);
//    }
//
//    public static List findAll(String regex, CharSequence content, int group) {
//        return (List)findAll((String)regex, content, group, new ArrayList());
//    }
//
//    public static > T findAll(String regex, CharSequence content, int group, T collection) {
//        return null == regex ? collection : findAll(PatternPool.get(regex, 32), content, group, collection);
//    }
//
//    public static List findAllGroup0(Pattern pattern, CharSequence content) {
//        return findAll((Pattern)pattern, content, 0);
//    }
//
//    public static List findAllGroup1(Pattern pattern, CharSequence content) {
//        return findAll((Pattern)pattern, content, 1);
//    }
//
//    public static List findAll(Pattern pattern, CharSequence content, int group) {
//        return (List)findAll((Pattern)pattern, content, group, new ArrayList());
//    }
//
//    public static > T findAll(Pattern pattern, CharSequence content, int group, T collection) {
//        if (null != pattern && null != content) {
//            Assert.notNull(collection, "Collection must be not null !", new Object[0]);
//            findAll(pattern, content, (matcher) -> {
//                collection.add(matcher.group(group));
//            });
//            return collection;
//        } else {
//            return null;
//        }
//    }
//
//    public static void findAll(Pattern pattern, CharSequence content, Consumer consumer) {
//        if (null != pattern && null != content) {
//            Matcher matcher = pattern.matcher(content);
//
//            while(matcher.find()) {
//                consumer.accept(matcher);
//            }
//
//        }
//    }
//
//    public static int count(String regex, CharSequence content) {
//        if (null != regex && null != content) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return count(pattern, content);
//        } else {
//            return 0;
//        }
//    }
//
//    public static int count(Pattern pattern, CharSequence content) {
//        if (null != pattern && null != content) {
//            int count = 0;
//
//            for(Matcher matcher = pattern.matcher(content); matcher.find(); ++count) {
//            }
//
//            return count;
//        } else {
//            return 0;
//        }
//    }
//
//    public static boolean contains(String regex, CharSequence content) {
//        if (null != regex && null != content) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return contains(pattern, content);
//        } else {
//            return false;
//        }
//    }
//
//    public static boolean contains(Pattern pattern, CharSequence content) {
//        return null != pattern && null != content ? pattern.matcher(content).find() : false;
//    }
//
//    public static MatchResult indexOf(String regex, CharSequence content) {
//        if (null != regex && null != content) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return indexOf(pattern, content);
//        } else {
//            return null;
//        }
//    }
//
//    public static MatchResult indexOf(Pattern pattern, CharSequence content) {
//        if (null != pattern && null != content) {
//            Matcher matcher = pattern.matcher(content);
//            if (matcher.find()) {
//                return matcher.toMatchResult();
//            }
//        }
//
//        return null;
//    }
//
//    public static MatchResult lastIndexOf(String regex, CharSequence content) {
//        if (null != regex && null != content) {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return lastIndexOf(pattern, content);
//        } else {
//            return null;
//        }
//    }
//
//    public static MatchResult lastIndexOf(Pattern pattern, CharSequence content) {
//        MatchResult result = null;
//        if (null != pattern && null != content) {
//            for(Matcher matcher = pattern.matcher(content); matcher.find(); result = matcher.toMatchResult()) {
//            }
//        }
//
//        return result;
//    }
//
//    public static Integer getFirstNumber(CharSequence StringWithNumber) {
//        return Convert.toInt(get((Pattern)PatternPool.NUMBERS, StringWithNumber, 0), (Integer)null);
//    }
//
//    public static boolean isMatch(String regex, CharSequence content) {
//        if (content == null) {
//            return false;
//        } else if (StrUtil.isEmpty(regex)) {
//            return true;
//        } else {
//            Pattern pattern = PatternPool.get(regex, 32);
//            return isMatch(pattern, content);
//        }
//    }
//
//    public static boolean isMatch(Pattern pattern, CharSequence content) {
//        return content != null && pattern != null ? pattern.matcher(content).matches() : false;
//    }
//
//    public static String replaceAll(CharSequence content, String regex, String replacementTemplate) {
//        Pattern pattern = Pattern.compile(regex, 32);
//        return replaceAll(content, pattern, replacementTemplate);
//    }
//
//    public static String replaceAll(CharSequence content, Pattern pattern, String replacementTemplate) {
//        if (StrUtil.isEmpty(content)) {
//            return StrUtil.str(content);
//        } else {
//            Matcher matcher = pattern.matcher(content);
//            boolean result = matcher.find();
//            if (!result) {
//                return StrUtil.str(content);
//            } else {
//                Set varNums = (Set)findAll((Pattern)PatternPool.GROUP_VAR, replacementTemplate, 1, new TreeSet(LengthComparator.INSTANCE.reversed()));
//                StringBuffer sb = new StringBuffer();
//
//                do {
//                    String replacement = replacementTemplate;
//
//                    String var;
//                    int group;
//                    for(Iterator var8 = varNums.iterator(); var8.hasNext(); replacement = replacement.replace("$" + var, matcher.group(group))) {
//                        var = (String)var8.next();
//                        group = Integer.parseInt(var);
//                    }
//
//                    matcher.appendReplacement(sb, escape(replacement));
//                    result = matcher.find();
//                } while(result);
//
//                matcher.appendTail(sb);
//                return sb.toString();
//            }
//        }
//    }
//
//    public static String replaceAll(CharSequence str, String regex, Func1 replaceFun) {
//        return replaceAll(str, Pattern.compile(regex), replaceFun);
//    }
//
//    public static String replaceAll(CharSequence str, Pattern pattern, Func1 replaceFun) {
//        if (StrUtil.isEmpty(str)) {
//            return StrUtil.str(str);
//        } else {
//            Matcher matcher = pattern.matcher(str);
//            StringBuffer buffer = new StringBuffer();
//
//            while(matcher.find()) {
//                try {
//                    matcher.appendReplacement(buffer, (String)replaceFun.call(matcher));
//                } catch (Exception var6) {
//                    throw new UtilException(var6);
//                }
//            }
//
//            matcher.appendTail(buffer);
//            return buffer.toString();
//        }
//    }
//
//    public static String escape(char c) {
//        StringBuilder builder = new StringBuilder();
//        if (RE_KEYS.contains(c)) {
//            builder.append('\\');
//        }
//
//        builder.append(c);
//        return builder.toString();
//    }
//
//    public static String escape(CharSequence content) {
//        if (StrUtil.isBlank(content)) {
//            return StrUtil.str(content);
//        } else {
//            StringBuilder builder = new StringBuilder();
//            int len = content.length();
//
//            for(int i = 0; i < len; ++i) {
//                char current = content.charAt(i);
//                if (RE_KEYS.contains(current)) {
//                    builder.append('\\');
//                }
//
//                builder.append(current);
//            }
//
//            return builder.toString();
//        }
//    }
//}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy