关于java正则表达式解析文本 正则表达式java解析文本 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢你,不过数据是这样的。----------------------------------------------商户客户号: 商户名称:买入============================================== 订单号 交易日期-时间 交易流水 ---------------------------------------------- XW314433 20140114 134524 QS3144P3 20140114 13524==============================================总笔数: 2 金额: 卖出=========================================== 订单号 交易日期-时间 交易流水------------------------------------------- QS3144P3 20140114 134524==========================================总笔数: 1 金额: 撤销=========================================== 订单号 交易日期-时间 交易流水-------------------------------------------==========================================总笔数: 0 金额: 我的思路是,写一个正则表达式,去提取====任意字符---待提取的数据====这样一个文本提取出来可以得到3个分组,依次是买入,卖出,撤销的String,然后对这个String按行分割,得到一条明细。现在的问题是自己对正则表达式不熟,但是又不想去用subString,startsWith,等方法。这个用正则表达式不知道能实现不? 我自己来结贴吧。//利用正则表达式Pattern p = Pattern.compile("=+\\s.*\\s-+\\s(.*\\s[^(=+)]*)");Matcher m = p.matcher(settleFile);int i=0;String[] detail = new String[3];while(m.find()) { detail[i] = m.group(1); System.out.println("detail["+i+"]="+detail[i]); if (log.isDebugEnabled()) {log.debug("detail["+i+"]="+detail[i]);} i++;} if (log.isDebugEnabled()) {log.debug("total="+i);}得到的结果是:[2014-02-12 11:17:28,965] DEBUG detail[0]= XW314433 20140114 134524 QS3144P3 20140114 13524[2014-02-12 11:17:28,966] DEBUG detail[1]= QS3144P3 20140114 134524。。 关于设置select默认值 急,spring2中如何配置两个数据库 关于onbeforeunload与event.returnValue的问题 全手工制作Struts Web Project 请教EJB原理 请教一下tomcat5下配置struts问题!!! 如何做一个应用程序,在规定时间自动触发一事件(活动)? jndi问题!!!!!!!!!!!!!!!!!!!!!!!!! 如何定义n个ArrayList Rabbitmq线程池创建 spring ModelAndView定向html页面 关于计算机以g开头的编程语言
谢谢你,不过数据是这样的。----------------------------------------------商户客户号: 商户名称:买入
==============================================
订单号 交易日期-时间 交易流水
----------------------------------------------
XW314433 20140114 134524
QS3144P3 20140114 13524
==============================================
总笔数: 2 金额: 卖出
===========================================
订单号 交易日期-时间 交易流水
-------------------------------------------
QS3144P3 20140114 134524
==========================================
总笔数: 1 金额: 撤销
===========================================
订单号 交易日期-时间 交易流水
-------------------------------------------
==========================================
总笔数: 0 金额:
我的思路是,写一个正则表达式,去提取====
任意字符
---
待提取的数据
====
这样一个文本提取出来可以得到3个分组,依次是买入,卖出,撤销的String,然后对这个String按行分割,得到一条明细。现在的问题是自己对正则表达式不熟,但是又不想去用subString,startsWith,等方法。
这个用正则表达式不知道能实现不?
//利用正则表达式
Pattern p = Pattern.compile("=+\\s.*\\s-+\\s(.*\\s[^(=+)]*)");
Matcher m = p.matcher(settleFile);
int i=0;
String[] detail = new String[3];
while(m.find()) {
detail[i] = m.group(1);
System.out.println("detail["+i+"]="+detail[i]);
if (log.isDebugEnabled()) {log.debug("detail["+i+"]="+detail[i]);}
i++;
}
if (log.isDebugEnabled()) {log.debug("total="+i);}得到的结果是:
[2014-02-12 11:17:28,965] DEBUG
detail[0]= XW314433 20140114 134524
QS3144P3 20140114 13524[2014-02-12 11:17:28,966] DEBUG
detail[1]= QS3144P3 20140114 134524
。。