关于如何将文件内容提取(正则表达式)
2014-03-23 23:59
561 查看
test.properties:
region_data UA:444 PPA:444;
comparison_data UA:333 PPA:888;
文件内容类:
public class DataForm {
private String destType;
private String dataBaseRegion;
private String InstanceId;
DataForm(String destType,String dataBaseRegion,String InstanceId){
this.destType = destType;
this.dataBaseRegion = dataBaseRegion;
this.InstanceId = InstanceId;
}
public String getdestType() {
return destType;
}
public void setdestType(String dataType) {
this.destType = dataType;
}
public String getDataBaseRegion() {
return dataBaseRegion;
}
public void setDataBaseRegion(String dataBaseRegion) {
this.dataBaseRegion = dataBaseRegion;
}
public String getInstanceId() {
return InstanceId;
}
public void setInstanceId(String instanceId) {
InstanceId = instanceId;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
操作类:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
/**
* 注意在test.properties文件中要按照格式进行填写
* example : 最后都要以;结束。
* @author linyuan
*
*/
public class FileTest{
private static String regexForRegion = ";";
private static String regexFordata = " ";
private static String regexForDetails = ":";
private static String regionString;
private static String comparisonString;
public static String[] getRegexForRegion(StringBuffer in)
{
Pattern p = Pattern.compile(regexForRegion);
String[] region = p.split(in);
return region;
}
public static String[] getRegexFordata(String in)
{
Pattern p = Pattern.compile(regexFordata);
String[] region = p.split(in);
return region;
}
public static String[] getregexForDetails(String in)
{
Pattern p = Pattern.compile(regexForDetails);
String[] region = p.split(in);
return region;
}
public static void main(String[] args) throws IOException {
/**
* 读取文件内容
*/
List<DataForm> dataSource = new ArrayList<DataForm>();
StringBuffer buffer = new StringBuffer();
BufferedReader reader = null;
InputStream is = null;
try{
is = new FileInputStream("test.properties");
String line; // 用来保存每行读取的内容
reader = new BufferedReader(new InputStreamReader(is));
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("\n"); // 添加换行符
line = reader.readLine(); // 读取下一行
}
/**
* 开始进行文件文件内容匹配
*/
String[] region = getRegexForRegion(buffer);//获得数据源和参考数据库字符串
String[] regionDataPair;
String[] comparisonDataPair;
Pattern p = Pattern.compile(regexForRegion);
regionString = region[0].substring("region_data ".length(), region[0].length());
comparisonString = region[1].replaceAll("comparison_data ", "");
regionDataPair = getRegexFordata(regionString);
comparisonDataPair = getRegexFordata(comparisonString);//获得到数据对
for(int i = 0; i < regionDataPair.length;i++)
{
String[] data = getregexForDetails(regionDataPair[i]);
dataSource.add(new DataForm("region",data[0],data[1]));
}
for(int i = 0; i < comparisonDataPair.length;i++)
{
String[] data = getregexForDetails(comparisonDataPair[i]);
dataSource.add(new DataForm("comparison",data[0],data[1]));
}
}catch(Exception e)
{
e.printStackTrace();
}
finally{
reader.close();
is.close();
}
for(int j = 0; j < dataSource.size();j++)
{
System.out.println("目标是"+dataSource.get(j).getdestType()+",数据库类型是"+dataSource.get(j).getDataBaseRegion()+",实例代号是"+dataSource.get(j).getInstanceId()+"\n");
}
}
}
region_data UA:444 PPA:444;
comparison_data UA:333 PPA:888;
文件内容类:
public class DataForm {
private String destType;
private String dataBaseRegion;
private String InstanceId;
DataForm(String destType,String dataBaseRegion,String InstanceId){
this.destType = destType;
this.dataBaseRegion = dataBaseRegion;
this.InstanceId = InstanceId;
}
public String getdestType() {
return destType;
}
public void setdestType(String dataType) {
this.destType = dataType;
}
public String getDataBaseRegion() {
return dataBaseRegion;
}
public void setDataBaseRegion(String dataBaseRegion) {
this.dataBaseRegion = dataBaseRegion;
}
public String getInstanceId() {
return InstanceId;
}
public void setInstanceId(String instanceId) {
InstanceId = instanceId;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
操作类:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
/**
* 注意在test.properties文件中要按照格式进行填写
* example : 最后都要以;结束。
* @author linyuan
*
*/
public class FileTest{
private static String regexForRegion = ";";
private static String regexFordata = " ";
private static String regexForDetails = ":";
private static String regionString;
private static String comparisonString;
public static String[] getRegexForRegion(StringBuffer in)
{
Pattern p = Pattern.compile(regexForRegion);
String[] region = p.split(in);
return region;
}
public static String[] getRegexFordata(String in)
{
Pattern p = Pattern.compile(regexFordata);
String[] region = p.split(in);
return region;
}
public static String[] getregexForDetails(String in)
{
Pattern p = Pattern.compile(regexForDetails);
String[] region = p.split(in);
return region;
}
public static void main(String[] args) throws IOException {
/**
* 读取文件内容
*/
List<DataForm> dataSource = new ArrayList<DataForm>();
StringBuffer buffer = new StringBuffer();
BufferedReader reader = null;
InputStream is = null;
try{
is = new FileInputStream("test.properties");
String line; // 用来保存每行读取的内容
reader = new BufferedReader(new InputStreamReader(is));
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("\n"); // 添加换行符
line = reader.readLine(); // 读取下一行
}
/**
* 开始进行文件文件内容匹配
*/
String[] region = getRegexForRegion(buffer);//获得数据源和参考数据库字符串
String[] regionDataPair;
String[] comparisonDataPair;
Pattern p = Pattern.compile(regexForRegion);
regionString = region[0].substring("region_data ".length(), region[0].length());
comparisonString = region[1].replaceAll("comparison_data ", "");
regionDataPair = getRegexFordata(regionString);
comparisonDataPair = getRegexFordata(comparisonString);//获得到数据对
for(int i = 0; i < regionDataPair.length;i++)
{
String[] data = getregexForDetails(regionDataPair[i]);
dataSource.add(new DataForm("region",data[0],data[1]));
}
for(int i = 0; i < comparisonDataPair.length;i++)
{
String[] data = getregexForDetails(comparisonDataPair[i]);
dataSource.add(new DataForm("comparison",data[0],data[1]));
}
}catch(Exception e)
{
e.printStackTrace();
}
finally{
reader.close();
is.close();
}
for(int j = 0; j < dataSource.size();j++)
{
System.out.println("目标是"+dataSource.get(j).getdestType()+",数据库类型是"+dataSource.get(j).getDataBaseRegion()+",实例代号是"+dataSource.get(j).getInstanceId()+"\n");
}
}
}
相关文章推荐
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- python提取网页的特定内容(正则表达式实现)
- 利用正则表达式提取括号内内容
- 如何使用Javascript正则表达式来格式化XML内容
- 如何从系统相册提取一张照片,然后将其内容存储到一个事先准备好的文件中去
- 如何用Python Pandas以及正则表达式提取地址中的省份
- XPath与正则表达式在文本数据提取时该如何选择?
- 网页内容提取常用正则表达式
- 一个关于文件路径的正则表达式
- 关于如何使用vc6.0读取xml文件中的内容
- [笔记]如何使用正则表达式提取字符串中的分隔元素
- 如何使用java的正则表达式提取html标签?
- java通过正则表达式提取XML节点内容
- 如何利用正则表达式匹配花括号内的内容
- awk 系列:如何使用 awk 和正则表达式过滤文本或文件中的字符串
- linux下egrep文件内容搜索工具及扩展正则表达式详解
- WinForm使用正则表达式提取内容的方法示例
- 用正则表达式提取网页上表格的内容
- java正则表达式提取xxxx(yyyy)中的内容
- 关于如何使用vc6.0读取xml文件中的内容