源代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.regex.*; public class RegTest extends JFrame implements ActionListener{ /** * @author hoverlees(好棒) */ JTextField src=null; JTextField reg=null; JLabel match=null; JButton ok=new JButton("确定"); Box b=null; JLabel result=new JLabel(" "); JLabel la1=new JLabel(); JLabel la2=new JLabel();
/ //java.util.regex Pattern p=null;
public RegTest(){ super("java正则表达式练习");
src=new JTextField("hoverlees@yahoo.com.cn 好棒e"); reg=new JTextField("//De"); match=new JLabel(" "); b=Box.createVerticalBox(); Box b1=Box.createHorizontalBox(); b1.add(new JLabel(" 源字符串(str):")); b1.add(src); b1.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); b.add(b1); Box b2=Box.createHorizontalBox(); b2.add(new JLabel("正则表达式(reg):")); b2.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); b2.add(reg); b.add(b2); Box b3=Box.createHorizontalBox(); b3.add(match);
JLabel jl2=new JLabel("str.match(reg)完全匹配情况:"); addBox(jl2,match); addBox(new JLabel("str.split(reg)结果('|'分隔):"),result); addBox(new JLabel("包含部分匹配情况:"),la1); addBox(new JLabel("所有部分匹配('|'分隔):"),la2); Box b5=Box.createHorizontalBox(); b5.add(ok); b.add(b5); ok.addActionListener(this); this.getContentPane().add(b); this.setDefaultCloseOperation(3); this.pack(); this.setSize(600,this.getHeight()); this.getRootPane().setDefaultButton(ok); }
private void addBox(JComponent o1,JComponent o2){ Box temp=Box.createHorizontalBox(); temp.add(o1); if(o2!=null) temp.add(o2); temp.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); b.add(temp); temp.add(Box.createHorizontalGlue()); } public void actionPerformed(ActionEvent e){ match.setText(src.getText().matches(reg.getText()) ? "true":"false"); String[] str=src.getText().split(reg.getText()); StringBuilder sb=new StringBuilder(); for(int i=0;i<str.length;i++){ sb.append(str[i]); if(i!=str.length-1) sb.append("|"); }
result.setText(sb.toString()); p=Pattern.compile(reg.getText()); Matcher m=p.matcher(src.getText()); la1.setText(m.find() ? "true":"false"); StringBuilder sb2=new StringBuilder(); sb2.append(m.group()); while(m.find()){ sb2.append("|"); sb2.append(m.group()); }
la2.setText(sb2.toString()); }
public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { // TODO Auto-generated catch block e.printStackTrace(); } new RegTest().setVisible(true); } } |