2 u014096409 u014096409 于 2017.09.05 15:37 提问

如下,我用正则写了一个文本匹配的程序,编译没错但是就是输出没有结果,很郁闷。。。

import java.util.*;
import java.util.regex.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileInputStream;

import java.io.FileOutputStream;
import java.io.InputStreamReader;

public class text2
{
public static void main(String args[]){
String Comment_Txt=readFile("D:/test/data/text.txt");
String Phrase_Txt=readFile("D:/test/data/phrase.txt");
//System.out.println(Comment_Txt);
String Rst="";
String[] s=Phrase_Txt.split(",");
for(int i=0;i<s.length;i++){
//System.out.println(s[i]);
char[] Sm=s[i].toCharArray();
for(int j=0;j<Sm.length;j++){
String m="["+Sm[i]+"]";

        Rst=Rst+m;
        //System.out.println(Rst);
    }

    //System.out.println(Rst);
    String regEx="[`~!@#$%^&*()+=|{}:;\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?a-zA-Z 0-9]";
    Matcher m_data=ConverCompile(Comment_Txt.toString().trim(),regEx);
    String result=m_data.replaceAll("").trim();
    Matcher n_data=ConverCompile(result,""+Rst+""); 

    //System.out.println(result);
    //System.out.println(n_data);
    while(n_data.find()){
        System.out.println(n_data.group());
        //System.out.println(22222);
}
//System.out.println(11111);

Rst="";

}
}

//正则匹配
private static Matcher ConverCompile(String result,String regEx){
Pattern c=Pattern.compile(regEx);
Matcher mc=c.matcher(result);
return mc;
}
//文件读取
private static String readFile(String road){
File file=new File(road);
String encoding="GBK";
String lineTXT=null;
if(file.isFile()&&file.exists()){
try{
InputStreamReader read=new InputStreamReader(new FileInputStream(file),encoding);
BufferedReader bufferedReader=new BufferedReader(read);
lineTXT=bufferedReader.readLine();
read.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return lineTXT;
}
}

1个回答

caozhy
caozhy   Ds   Rxr 2017.09.05 15:39
 你的特殊符号中的* ^之类的都要转义
Csdn user default icon
上传中...
上传图片
插入图片