正则表达式

蓝黑十子星 2013-07-26 12:20:25
要求格式如:1001(-01-01-01-01.......N)如:1001,1001-01,1001-10-10等
括号部分是可选内容,可有可无
前4位首尾不能为0其他都可以如“1111”,‘3002’,‘2093’
后面可以不限连接‘xx’两位数,不允许为‘00’
求大牛解答急!!!!!!!!!!
最好是java的
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2013-07-26
  • 打赏
  • 举报
回复

// 用这个新的。
// 前4位首尾不能为0:忘了这里
String pattern = "[1-9]\\d{2}[1-9](-[1-9]\\d|-\\d[1-9])*";
Inhibitory 2013-07-26
  • 打赏
  • 举报
回复
public class Hello {
    public static void main(String[] args) throws Exception {
        String pattern = "[1-9]\\d{3}(-[1-9]\\d|-\\d[1-9])*";

        System.out.println("1001".matches(pattern));
        System.out.println("1001-10".matches(pattern));
        System.out.println("1001-01".matches(pattern));
        System.out.println("1001-00".matches(pattern));
        System.out.println("1001-10-10".matches(pattern));
        System.out.println("1001-10-01".matches(pattern));
        System.out.println("1001-01-10".matches(pattern));
        System.out.println("1001-01-01".matches(pattern));
        System.out.println("0001-01-01".matches(pattern));
    }
}
输出
true
true
true
false
true
true
true
true
false
乌鸦不会飞 2013-07-26
  • 打赏
  • 举报
回复
引用 2 楼 Inhibitory 的回复:

// 用这个新的。
// 前4位首尾不能为0:忘了这里
String pattern = "[1-9]\\d{2}[1-9](-[1-9]\\d|-\\d[1-9])*";
楼上正解,推荐楼主使用 RegexBuddy

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧