- str.split(regex)的结果.
- str.match(regex)的结果.
当然还有输出java.util.regex包里的一些使用结果.一般来说对用java的,练习正则有用吧,如果你对java.util.regex不怎么了解,这个代码可能会有点帮助.任何不懂的回复问我就是.
源代码如下:
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写的正则表达式练习器.
可能有人会说现在网上到处都是正则表达式的练习器,我也见过不少,有用html和javascript写的hta应用程序的,也有用C#写的,但是这个用java写的练习器当然是与java有关的哦.里面肯定有源字符串(str)和正则表达式(regex)的输入,只不过输出与其它不一样,输出的是