不清楚在Java中怎么限定范围进行有效匹配,比如下面的文本,我怎么能够定位在EEE CNTS和EEE TAND之间,然后通过正则表达式进行有效匹配.
在Perl 中是可以用if(/EEE CNTS/../EEE TAND/)可以限定匹配范围.
再加上我要处理的文本比较大,大概有80MB左右.如果不限定范围的话,用模式匹配可能会匹配重复.请高手们帮忙回复一下,多谢.
文本内容如下:
EEE CNTS
00000 00036 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000
EEE TAND 000021120 000000004 000009110CCC CNTS
00000 00036 00000 00000
00000 00000 00000 00000
00000
CCC TAND 000021120 000000004 000009110
在Perl 中是可以用if(/EEE CNTS/../EEE TAND/)可以限定匹配范围.
再加上我要处理的文本比较大,大概有80MB左右.如果不限定范围的话,用模式匹配可能会匹配重复.请高手们帮忙回复一下,多谢.
文本内容如下:
EEE CNTS
00000 00036 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000
EEE TAND 000021120 000000004 000009110CCC CNTS
00000 00036 00000 00000
00000 00000 00000 00000
00000
CCC TAND 000021120 000000004 000009110
解决方案 »
- log4j与内存问题:在linux服务器中打印日志时内存使用会越来越高,帮忙解决下
- 如何在自己的GUI中 显示(或运行) 已经制作好的APPLET 或 JAVA3D 程序?
- 请问各位大侠做报表用什么工具做比较好呢
- <html:errors/>问题
- 特别简单的问题:字节和字符到底怎么区别?区分在哪里?
- 关于java.util包的几个问题?
- JBeaver插件的问题
- 怎么使一个面板的局部重画?
- 怎样在Java HTTPServer 中定义一个全局变量
- 请问网上何处有关于JUnit的使用例子程序?
- the static method cannot hide instance method from object
- 请教普元的属性
我现在想定位在这一块内进行匹配下面的23组数据.现在明白了吧?
EEE CNTS
00000 00036 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000
EEE TAND 000021120 000000004 000009110
Pattern pattern = Pattern.compile("EEE CNTS(.*?)EEE TAND",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = pattern.matcher(str);
while (m.find()) {
System.out.println(m.group(1));
}
2.处理内存中的数据PS:第一点有很多方法能实现.随便说一下 BufferedReader.readLine(); String.startsWith("EEE CNTS");
以前写过 针对EXCEL 的
begin
xxxxxxxx
xxxxxxx
endbegin
xxxxxxxx
xxxxxxx
end这样类型的解析.
毕竟数据量大了,不限定,会有很多问题...