zoukankan      html  css  js  c++  java
  • java使用正则的例子

    package com.accord.util;
    
     
    
    import java.util.ArrayList;
    
    import java.util.List;
    
    import java.util.regex.Matcher;
    
    import java.util.regex.Pattern;
    
     
    
    /**
    
     * 正则表达式匹配两个字符串之间的内容
    
     * @author Administrator
    
     *
    
     */
    
    public class RegexUtil {
    
        
    
        public static void main(String[] args) {
    
            String str = "<?xml version='1.0' encoding='UTF-8'?><ufinterface billtype='gl' filename='e:1.xml' isexchange='Y' proc='add' receiver='1060337@1060337-003' replace='Y' roottag='sendresult' sender='01' successful='Y'><sendresult><billpk></billpk><bdocid>w764</bdocid><filename>e:1.xml</filename><resultcode>1</resultcode><resultdescription>单据w764开始处理...单据w764处理完毕!</resultdescription><content>2017.09-记账凭证-1</content></sendresult><sendresult><billpk></billpk><bdocid>w1007</bdocid><filename>e:1.xml</filename><resultcode>1</resultcode><resultdescription>单据w1007开始处理...单据w1007处理完毕!</resultdescription><content>2017.10-记账凭证-1</content></sendresult><sendresult><billpk></billpk><bdocid>w516</bdocid><filename>e:1.xml</filename><resultcode>1</resultcode><resultdescription>单据w516开始处理...单据w516处理完毕!</resultdescription><content>2017.07-记账凭证-50</content></sendresult></ufinterface>";
    
            //String str = "abc3443abcfgjhgabcgfjabc";  
    
            String rgex = "<bdocid>(.*?)</bdocid>";
    
            
    
            System.out.println((new RegexUtil()).getSubUtil(str,rgex)); 
    
            List<String> lists = (new RegexUtil()).getSubUtil(str,rgex);
    
            for (String string : lists) {
    
                System.out.println(string);
    
            }
    
            System.out.println((new RegexUtil()).getSubUtilSimple(str, rgex));  
    
        }
    
        
    
        /** 
    
         * 正则表达式匹配两个指定字符串中间的内容 
    
         * @param soap 
    
         * @return 
    
         */  
    
        public List<String> getSubUtil(String soap,String rgex){  
    
            List<String> list = new ArrayList<String>();  
    
            Pattern pattern = Pattern.compile(rgex);// 匹配的模式  
    
            Matcher m = pattern.matcher(soap);  
    
            while (m.find()) {  
    
                int i = 1;  
    
                list.add(m.group(i));  
    
                i++;  
    
            }  
    
            return list;  
    
        }  
    
          
    
        /** 
    
         * 返回单个字符串,若匹配到多个的话就返回第一个,方法与getSubUtil一样 
    
         * @param soap 
    
         * @param rgex 
    
         * @return 
    
         */  
    
        public String getSubUtilSimple(String soap,String rgex){  
    
            Pattern pattern = Pattern.compile(rgex);// 匹配的模式  
    
            Matcher m = pattern.matcher(soap);  
    
            while(m.find()){  
    
                return m.group(1);  
  • 相关阅读:
    luogu P2015 二叉苹果树
    luogu P1197 [JSOI2008]星球大战
    QBXT T15214 Day2上午遭遇
    luogu P2831 愤怒的小鸟
    luogu P1018 乘积最大
    [BZOJ2402]陶陶的难题II(树链剖分+线段树维护凸包+分数规划)
    [BZOJ1500][NOI2005]维修数列(splay)
    [BZOJ3282]Tree(LCT)
    [BZOJ4785][ZJOI2017]树状数组(概率+二维线段树)
    [BZOJ2427][HAOI2010]软件安装(Tarjan+DP)
  • 原文地址:https://www.cnblogs.com/shanshuiyouxiangfeng/p/13969160.html
Copyright © 2011-2022 走看看