java吧 关注:1,265,747贴子:12,767,912
  • 12回复贴,共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 09:02:28
      广告


      IP属地:上海3楼2012-03-13 21:00
      回复
        看下楼下怎么说的...


        IP属地:上海4楼2012-03-13 21:00
        回复
          看着眼花 太乱了


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


            6楼2012-03-13 21:04
            回复
              ^[c-fC-F]:\\(\w+\\)?\w+\.\w+$ 不知道行不行?


              IP属地:广东7楼2012-03-13 21:57
              回复
                上面废了 写的不对


                IP属地:广东8楼2012-03-13 22:07
                回复
                  2025-06-23 08:56:28
                  广告
                  没有这种必要,就算是符合规定的路径,实际上也不一定是可读写的,比如文件不存在等情况
                  直接在处理实际路径时捕获异常


                  9楼2012-03-13 22:10
                  回复



                    IP属地:广东10楼2012-03-13 22:13
                    回复



                      IP属地:广东11楼2012-03-13 22:15
                      回复
                        不过这好像没什么用 扩展名可能是非法的也检查不了


                        IP属地:广东12楼2012-03-13 22:17
                        回复
                          用JFileChooser啊文件选择器。
                          用它来定位文件不行么?


                          13楼2012-03-14 11:18
                          回复