1.文件在工程位置:
2.pojo对象 Person.java
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = 1L;
private String id;
private String name;
private int age;
private String desc;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
}
3.文本文件 regex.info内容
private String id;
private String name;
private int age;
private String desc;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
}
3.文本文件 regex.info内容
id="CN11006";name="李立";age=26;desc="你好!";
id="CN11012";name="夏雨";age=22;desc="呵呵!";
id="CN11012";name="夏雨";age=22;desc="呵呵!";
4.测试main Testregex.java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Administrator
* @desc java正则表达式测试,文本文件(若加密,可先解密)--》pojo
*/
public class Testregex {
public static void main(String[] args) throws IOException {
//读取文件
Reader r = new FileReader("regex.info");
BufferedReader br = new BufferedReader(r);
//list集合
List<Person> list = new ArrayList<Person>();
//匹配正则表达式,部分字符需转义
String regex = "id=\"( \\S+)\";name=\"(\\S+)\";age=(\\d+);desc=\"(\\S+)\";";
//编译表达式
Pattern p = Pattern.compile(regex);
String str="";
//读取文件一行数据
while((str=br.readLine())!= null &&!"".equals(str.trim())){
//获取匹配器,通过解释 Pattern 对 字符序列 执行匹配操作
Matcher m = p.matcher(str);
//实例化pojo对象
Person person =new Person();
if(m.find()){
/*
获取正则表达式中,匹配要获取的数据
"id=\"( \\S+)\";name=\"(\\S+)\";age=(\\d+);desc=\"(\\S+)\";";
m.group(0) --》 匹配的所有数据
m.group(1)--》第一个捕获的数据,即id:( \\S+)括号内的数据
.
.
m.group(4)--》第四个捕获的数据,即desc:desc=\"( \\S+)\"括号内的数据
*/
person.setId(m.group(1));
person.setName(m.group(2));
person.setAge(Integer.parseInt(m.group(3)));
person.setDesc(m.group(4));
//将实例add到list集合
list.add(person);
}
}
//关闭流
br.close();
//打印对象数据
for(Person e : list){
System.out.println(e.getId()+":"+e.getName()+":"+e.getAge()+":"+e.getDesc());
}
}
}
如想了解更多,请网上查询资料.....
* @author Administrator
* @desc java正则表达式测试,文本文件(若加密,可先解密)--》pojo
*/
public class Testregex {
public static void main(String[] args) throws IOException {
//读取文件
Reader r = new FileReader("regex.info");
BufferedReader br = new BufferedReader(r);
//list集合
List<Person> list = new ArrayList<Person>();
//匹配正则表达式,部分字符需转义
String regex = "id=\"( \\S+)\";name=\"(\\S+)\";age=(\\d+);desc=\"(\\S+)\";";
//编译表达式
Pattern p = Pattern.compile(regex);
String str="";
//读取文件一行数据
while((str=br.readLine())!= null &&!"".equals(str.trim())){
//获取匹配器,通过解释 Pattern 对 字符序列 执行匹配操作
Matcher m = p.matcher(str);
//实例化pojo对象
Person person =new Person();
if(m.find()){
/*
获取正则表达式中,匹配要获取的数据
"id=\"( \\S+)\";name=\"(\\S+)\";age=(\\d+);desc=\"(\\S+)\";";
m.group(0) --》 匹配的所有数据
m.group(1)--》第一个捕获的数据,即id:( \\S+)括号内的数据
.
.
m.group(4)--》第四个捕获的数据,即desc:desc=\"( \\S+)\"括号内的数据
*/
person.setId(m.group(1));
person.setName(m.group(2));
person.setAge(Integer.parseInt(m.group(3)));
person.setDesc(m.group(4));
//将实例add到list集合
list.add(person);
}
}
//关闭流
br.close();
//打印对象数据
for(Person e : list){
System.out.println(e.getId()+":"+e.getName()+":"+e.getAge()+":"+e.getDesc());
}
}
}
如想了解更多,请网上查询资料.....