zoukankan      html  css  js  c++  java
  • 正则获取一组数据

     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import org.apache.oro.text.regex.Perl5Compiler;
    import org.apache.oro.text.regex.Perl5Matcher;
    import org.apache.oro.text.regex.Perl5Substitution;
    import org.apache.oro.text.regex.MalformedPatternException;
    import org.apache.oro.text.regex.MatchResult;
    import org.apache.oro.text.regex.Pattern;
    import org.apache.oro.text.regex.PatternCompiler;
    import org.apache.oro.text.regex.Util;

    public
    class regexUtils { private final static String regIp = "ip:([^,]+)"; /** * @param str * @param reg * @return * @throws MalformedPatternException */ public static DynamicArray<String> getHostData(String str, String reg) throws MalformedPatternException { DynamicArray<String> tempArray = new DynamicArray<String>(); List<MatchResult> match = new ArrayList<MatchResult>(); regexUtils.getMatchResults(match, str, reg); for (int i = 0; i < match.size(); i++) { String ip = match.get(i).group(1); tempArray.add(ip); } return tempArray; } /** * return match array * @param results * @param pageContent * @param regStr * @throws MalformedPatternException */ public static void getMatchResults(List<MatchResult> results, String pageContent, String regStr) throws MalformedPatternException { PatternCompiler compiler = new Perl5Compiler(); Pattern reg = compiler.compile(regStr, Perl5Compiler.CASE_INSENSITIVE_MASK); Perl5Matcher matcher = new Perl5Matcher(); Perl5Substitution substitution = new Perl5Substitution(); while (matcher.contains(pageContent, reg)) { substitution.setSubstitution(""); results.add(matcher.getMatch()); pageContent = Util.substitute(matcher, reg, substitution, pageContent); } } public static vodi main(String[] args){ String sourceData = "{172.16.134.134=SystemPerformanceEntity[ ip: 172.16.134.134, cpuUsage: 5.9%, memoryUsage: 28.555202535499337%, load: 0.99, diskUsage: {/sys/fs/cgroup=3%, /dev=4%, /run/shm=5%, /run=6%, /run/lock=7%}], 172.16.134.131=SystemPerformanceEntity[ ip: 172.16.134.131, cpuUsage: 5.0%, memoryUsage: 28.52202558918353%, load: 0.41, diskUsage: {/sys/fs/cgroup=0%, /dev=1%, /run/shm=1%, /run=1%, /run/lock=1%}]}"; DynamicArray<String> ips = regexUtils.getHostData(sourceData , regIp); System.out.println(ips); } }

    动态数组类:

    public class DynamicArray<AnyType> {
        private int size = 0;
        private AnyType theItem[] = null;
    
        public DynamicArray(AnyType a[]) {
            this.theItem = a;
            this.size = a.length;
        }
    
        public DynamicArray() {
        }
    
        public int getSize() {
            return this.size;
        }
    
        public AnyType get(int nIndex) {
            return this.theItem[nIndex];
        }
    
        public void Set(int nIndex, AnyType newElement) {
            this.theItem[nIndex] = newElement;
        }
    
        public void add(AnyType newVal) {
            AnyType old[] = this.theItem;
    
            this.theItem = (AnyType[]) new Object[size + 1];
            if (size != 0) {
                for (int i = 0; i < old.length; i++) {
                    this.theItem[i] = old[i];
                }
            }
            this.theItem[this.size] = newVal;
            this.size++;
        }
    
        public static void main(String args[]) {
            DynamicArray<String> array = new DynamicArray<String>();
            array.add("1");
            array.add("2");
            array.add("3");
            array.add("a");
            array.add("b");
            array.add("c");
            for (int i = 0; i < array.size; i++) {
                System.out.println(array.get(i));
            }
        }
    }
  • 相关阅读:
    JAVA中的继承
    各种浏览器设置背景颜色线性渐变的方式
    JavaScript原型链
    JavaScript运算符
    QQ聊天:终结编程语言和编程职业
    virutal dom patch
    关于编辑器和语言的一些启示
    node-webkit 资源
    我的程序,你的生活
    过早优化是万恶之源
  • 原文地址:https://www.cnblogs.com/cloudwind/p/2733788.html
Copyright © 2011-2022 走看看