请看程序
import java.util.regex.*;
public class Expression {
public static void main(String[] args) 
{
Pattern  p  = Pattern.compile("\\d[3,5]");
String  s = "11111-12345-124-535";
Matcher  m =  p.matcher(s);
System.out.println(m.matches());
m.reset();
System.out.println(m.find());
System.out.println(m.end());
System.out.println(m.find());
System.out.println(m.end());
System.out.println(m.find());
System.out.println(m.end());
System.out.println(m.find());
System.out.println(m.lookingAt());
}}
结果为
false
true
9
true
11
true
18
false
false
当我把字符串改成
String  s = "15551-12345-124-535";(就改动了开头的数字,位数没变。)
结果就变成了
false
true
2
true
4
true
9
true
true