请看程序
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
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
解决方案 »
- No provider for pop3
- 谁给我一个java中I/O树状结构层次图!!!谢了!!
- 关于垃圾回收的问题,答案是哪个,为什么?
- window 右上角的关闭按钮可以屏蔽吗?
- 我想用JAVA语音做一个JAVA编译工具,有DEBUG功能,但是无从下手,希望高手指点下,在线等
- sun或者有没有专门对IP地址检查的工具类
- 关于汉字显示的问题
- 用JAVA做我的应用程序的宏语言可行吗?
- 我用单机编译socket和ServerSocket程序,我应该怎样对自己的机器进行设置?
- 可否用PreparedStatement的setObject向sqlserver中写入对象?
- 发了聊天记录,引出大家对java中优化现象的了解。
- 关于jdbc
原来是匹配:任意一个数字后面是3或者是5或者是“,”
给看出成:Pattern.compile("\\d{3,5}");连续3-5个数字了
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test{
public static void main(String[] args){
String regex = "\\d[3,5]"; //这里表示的是一个数字后面跟 3 或者 , 或者5
//如果你的意思是连续的三至五个数字应该是 "\\d[3-5]"
}
}