import java.util.regex.*;
public class TestRegularExpression{
public static void main(String[] args){
if(args.length < 2){
System.out.println("Usage:\njava TestRegularExpression "+"characterSequence regularExpression");
System.exit(0);
}
System.out.println("Input \"" +args[0]+"\"");
for(String arg : args ){
System.out.println("Regular expression: \"" + arg +"\"");
Pattern p = Pattern.compile(arg);
Matcher m = p.matcher(args[0]);
while(m.find()){
System.out.println("Match \"" + m.group() + "\" at positions " +
m.start() + "-" + (m.end() - 1));
}
}
}
}
//在DOS运行如下:
//java TestRegularExpression 后面的输入将赋入String[] args
//String[]args 只是一个预留的参数列表,输入的时候可以有任意多个(如以下例子的:abcadsadabcabababcabcc "abc+" "(abc)+" "(abc){2,}" ),通过空格分割。然后输出的时候是通过数组下标输出。
E:\learningforder\cmd test>java TestRegularExpression abcadsadabcabababcabcc "abc+" "(abc)+" "(abc){2,}"Input "abcadsadabcabababcabcc" //对应System.out.println("Input \"" +args[0]+"\"");
Regular expression: "abcadsadabcabababcabcc"//对应System.out.println("Regular expression: \"" + arg +"\"");
Match "abcadsadabcabababcabcc" at positions 0-21
Regular expression: "abc+"
Match "abc" at positions 0-2
Match "abc" at positions 8-10
Match "abc" at positions 15-17
Match "abcc" at positions 18-21
Regular expression: "(abc)+"
Match "abc" at positions 0-2
Match "abc" at positions 8-10
Match "abcabc" at positions 15-20
Regular expression: "(abc){2,}"
Match "abcabc" at positions 15-20
E:\learningforder\cmd test>java TestRegularExpression
Usage:
java TestRegularExpression characterSequence regularExpression //对应System.out.println("Usage:\njava TestRegularExpression "+"characterSequence regularExpression");