java正则表达式的一个例子

一般有如下步骤使用正则表达式
1、读取文本
一般非常长的文本才需要正则表达式,两行的话,等于大炮打蚊子,正则是越多越好,那么就必须存在其他文件中,例如txt或者数据库。
2、撰写正则表达式
最核心的一个部分,就是撰写表达式获取自己需要的内容
3、拼接
这个是后续的维护服务,一般使用正则表达式是将里面的数据取出来,并且加上自己的一些字符拼接,成为语句等等,例如sql。

例子:

package com.javaer.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetItem {

    public static void main(String[] args) throws Throwable, Throwable {

        //文件地址
        String filePath = "/Users/admin/item.txt";
        File file=new File(filePath);
        InputStreamReader read = new InputStreamReader(
                new FileInputStream(file),"UTF-8");//考虑到编码格式
        BufferedReader bufferedReader = new BufferedReader(read);
        List<String> list = new ArrayList<String>();
        String lineTxt ="";
        while((lineTxt = bufferedReader.readLine()) != null){
            list.add(lineTxt);
        }
        read.close();

        int id = 200;
        for(int i =0;i<list.size();i++){
            String expresstion = list.get(i);
            String code = "";
            String marketType = "";
            id++;

            //读出第一个参数
            Pattern pattern1 = Pattern.compile("ItemAttr=(.+?),");
            Matcher matcher1 = pattern1.matcher(expresstion);
            if(matcher1.find()){
                code = matcher1.group(1);
            }

            //读出第二个参数
            pattern1 = Pattern.compile("marketTypes=\\[(.+?)\\]");
            matcher1 = pattern1.matcher(expresstion);
            if(matcher1.find()){
                marketType = matcher1.group(1);
            }

            //构造SQL表达式,构造结果
            if(code.length()>0 && !marketType.contains(",")){
                System.out.println("insert into table values("+id+",'2015-08-29 16:18:56','2015-08-29 16:18:56',"
                        + "'"+code+"','"+code+"','memo',1,1,1,1,'jianghuiwen','jianghuiwen',0);");

                System.out.println("insert into table values(null,'2015-08-29 16:26:23','2015-08-29 16:26:23',3,'"+marketType+"',"+id+",2,1);");
            }


        }


    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值