java吧 关注:1,265,772贴子:12,770,438
  • 2回复贴,共1

大神帮我写个简单的正则表达式吧= =

取消只看楼主收藏回复

import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.regex.Matcher;import java.util.regex.Pattern;
import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;
public class FileDemo extends JFrame implements ActionListener{ JFrame fra=new JFrame("文件测试窗口!"); String FilePath=new String(); Button open,save,exit; FileDialog sv,op; TextArea ta; TextField name; public FileDemo(){ Init(); } private void Init(){ fra.setContentPane(createcontent()); fra.setBounds(250,70,300,250); fra.setVisible(true); } private JPanel createcontent() { JPanel p=new JPanel(new BorderLayout()); name=new TextField(); p.add(BorderLayout.NORTH,name); p.add(BorderLayout.CENTER,createPanel()); ta=new TextArea(8,20); p.add(BorderLayout.SOUTH,ta); op = new FileDialog(fra, "打开", FileDialog.LOAD); sv = new FileDialog(fra, "保存", FileDialog.SAVE); return p; } private JPanel createPanel() { JPanel p=new JPanel(); open=new Button("打开文件"); save=new Button("另存为"); exit=new Button("退出系统"); p.add(open); p.add(save); p.add(exit); open.addActionListener(this); save.addActionListener(this); exit.addActionListener(this); return p; } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==open){ if(name.getText().equals("")){ String str=""; op.setVisible(true); try { File f1 = new File(op.getDirectory(), op.getFile());//打开文件 FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr);//读取文件 ta.setText("");//设置文本框内容为空 while ((str = br.readLine()) != null) ta.append(str + '\n');//文本框添加读取的文件内容 fr.close(); }catch(Exception e1){ e1.getMessage(); } }else{ String pathstr = name.getText(); Pattern p = Pattern.compile("^[a-zA-Z]:\\?/.+?$"); Matcher m = p.matcher(pathstr); if(m.matches()){ String str1=""; try { File f1 = new File(pathstr);//打开文件 FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr);//读取文件 ta.setText("");//设置文本框内容为空 while ((str1 = br.readLine()) != null) ta.append(str1 + '\n');//文本框添加读取的文件内容 fr.close(); }catch(Exception e1){ e1.getMessage(); } }else{ JOptionPane.showMessageDialog( null,"输入不正确","Information",JOptionPane.INFORMATION_MESSAGE); } } } if(e.getSource()==save){ sv.setVisible(true); try { File f1 = new File(sv.getDirectory(), sv.getFile()); FileWriter fw = new FileWriter(f1); BufferedWriter bw = new BufferedWriter(fw); String gt = ta.getText();//获取文本框内容 bw.write(gt, 0, gt.length());//将文本框内容写入文件 bw.flush();//真正的写入文件 fw.close();//关闭写入 } catch (Exception e2) {//错误处理 e2.printStackTrace();//打印错误信息 } } if(e.getSource()==exit){ int value=JOptionPane.showConfirmDialog(null, "确定要关闭吗?"); if (value==JOptionPane.OK_OPTION) { System.exit(0); } } } public static void main(String[] args) { FileDemo file=new FileDemo(); }
}



1楼2012-03-13 20:59回复
    OJZ。怎么黏贴上来就这么乱了。。。


    2楼2012-03-13 21:00
    回复
      2025-06-23 14:06:16
      广告
      大神帮我写个正则表达式吧= =用来检测文件路径是否正确
      原则上是这样的:
      C:\Pal5Revoke.txt
      C:\aaa\bb\Pal5Revoke.txt
      我写的是^[a-zA-Z]:\\?/.+?$
      但是不行。麻烦大神帮我看看。。


      6楼2012-03-13 21:04
      回复