用java写的正则表达式练习器.
来源:互联网 发布:java对象是什么意思 编辑:程序博客网 时间:2024/05/22 03:43
源代码如下:
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);
}
}
- 用java写的正则表达式练习器.
- java正则表达式练习
- java正则表达式练习
- java 正则表达式 练习
- Java正则表达式练习
- java正则表达式练习
- Java 正则表达式 练习
- 正则表达式练习器
- 正则表达式练习器
- 对正则表达式练习器的改进
- JAVA 正则表达式(练习)
- python 正则表达式的练习
- [转载] 正则表达式练习器
- java采集网址正则表达式练习一
- java正则表达式练习-涉及分组group()
- 正则表达式及java相关练习
- Java的正则表达式
- Java的正则表达式
- SSH简介及配置使用SSH登陆远程主机
- Serial Programming Guide for POSIX Operating Systems(2)
- 如何识别庄家的进出货动作
- Serial Programming Guide for POSIX Operating Systems(3)
- 学习计划
- 用java写的正则表达式练习器.
- Serial Programming Guide for POSIX Operating Systems(4)
- 销量超过10万册Amazon第一PHP图书出版
- 入市基础普及篇(常用术语)
- 入市基础普及篇(策略篇)
- 玩的不错
- 来电闪光电话
- jdom入门(基本的操作都可以)
- Introduction to Asynchronous Programming in .NET 2.0