`
lippeng
  • 浏览: 451171 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

正则表达式 匹配 数字 范围

阅读更多

今天要写一个正则表达式,来做前端校验。主要部分是 用来匹配1~4095的数字。

 

现在就以这个为例,说一下表示范围的正则怎么写。

 

1、只有1~3位数字,即数字范围:1~999。

 

分析:第1个数字是1~9,后面的可以出现0~9的数字,最多2位。于是,就有了下面的字符串:

 

"[1-9]\\d{0,2}+"

 

2、4位数的,要小于等于4095,即数字范围:1000~4095。

 

分析:第1位,可以是1~4;第2位,依赖第1位,当第1位是4的时候,第2位只能是0;同理,第3位依赖第2位;第4位依赖第3位。所以,就有了以下代码:

 

"[1-4]\\d(?<!4[1-9])\\d\\d(?<!409[6-9])"

 

这里用的是非捕获(?<!X) X,通过零宽度的负 lookbehind 来实现的。

 

完整代码如下:

 

 

package com.lippeng.helloworld;

import java.io.UnsupportedEncodingException;

public class HelloWorld {

    public static void main(String[] args) throws UnsupportedEncodingException {

        // 1~4095
        String regex = "[1-9]\\d{0,2}+|[1-4]\\d(?<!4[1-9])\\d\\d(?<!409[6-9])";

        String[] strArray = { "4094", "4095", "4096", "5000", "4000", "900", "10", "9", "0", "1", "-1", "a", "@" };

        for (String str : strArray) {
            System.out.println(str + " " + str.matches(regex));
        }

    }
}
 

 

测试结果:

 

 

4094 true
4095 true
4096 false
5000 false
4000 true
900 true
10 true
9 true
0 false
1 true
-1 false
a false
@ false
 

 

 

0
3
分享到:
评论
2 楼 lucky_god 2017-04-17  
js不可用
1 楼 光eye 2014-04-02  
求一个正则表达式,以32开头,8位数字地区代码。不包含下面的( 32012008 32012011 32012012 32012013 32012002 32012004 32012007 32012006    32053006地区代码)除外。也是用这种范围方式吗?

相关推荐

    关于在LABVIEW中使用正则匹配公式.vi

    正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时...

    Jmeter正则表达式扩展

    Jmeter正则表达式扩展正则表达式,又称规则表达式。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 1.匹配字符 [ ] 匹配这个范围内的任意字符;如,[a-z]匹配小写字母a到z这个范围的任意字符 . 匹配...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    其他的正则表达式匹配.php 其他的正则表达式匹配 取得正则表达式的全部匹配.php 取得正则表达式的全部匹配 返回与模式匹配的数组单元.php 返回与模式...

    正则表达式匹配IP的表达式(推荐)

    这里给大家详细讲解一下一个匹配IP地址的正则表达式,  有关正则方面的知识,会在详细的讲解中提到。  在讲解之前,我先给大家介绍一下,ip地址的生成规则。  IP地址,是由32位数字二进制转为四个十进制的字符串...

    JS正则表达式验证端口范围(0-65535)

    javascript正则表达式验证IP地址的端口合法性 if (!(/^[1-9]\d*$/.test(port) && 1 &lt;= 1 * port && 1 * port &lt;= 65535)){ return false } 提示文案: 您的端口不符合范围:0-65535 PS:下面看下JavaScript...

    常用正则表达式

    整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。...匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff]

    正则表达式经典实例

    3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 3.9 获取匹配文本的一部分 3.10 获取所有匹配的列表 3.11 遍历所有匹配 3.12 在过程代码中对匹配结果进行验证 3.13 在...

    正则表达式经典实例.pdf

    3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 3.9 获取匹配文本的一部分 3.10 获取所有匹配的列表 3.11 遍历所有匹配 3.12 在过程代码中对匹配结果进行验证 3.13 在另一个...

    SQL 正则表达式及mybatis中使用正则表达式

    mysql 提供的模式匹配的其他类型是使用扩展正则表达式。 当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。 扩展正则表达式的一些字符是: “.”匹配任何单个的...

    正则表达式

    例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字 符.但是,它要求开始和结束的引号匹配(例如两个都是双引号或者都是单引号): /[' "] [^ ' "]*[' "]/ 如果要求开始和结束的引号匹配,我们可以...

    正则表达式之匹配数字范围

    最近有个需求就是根据产品编号批量下架产品,需要下架日期为16-31号之间的产品, ...如何写个正则表达式,只有4个数字才能匹配比如1234可以匹配,12345或者12数字个数不是4个的不能匹配? \d{4}我试过不可以,

    正则表达式教程

    正则表达式教程  正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 &lt;br&gt;列目录时, dir *....

    常用的正则表达式大全(数字、字符、固定格式)

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时, dir *.txt或ls *.txt中的*.txt就不是...

    正则表达式30分钟入门教程

    \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 正则表达式引擎通常会提供一个“测试指定的字符串是否匹配一个正则表达式”的方法,如JavaScript里的RegExp.test()方法或.NET里的Regex...

    java 正则表达式

    下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: function IP2V(ip){re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+...

    Python—-正则表达式

    匹配前面出现的正则表达式任意多次,包含0次 *:[abc]* 匹配前面出现的正则表达式0次或1次 ?:a? 匹配前面出现的正则表达式一次或多次+:a+ \d:匹配任何数字 \s:匹配任何空白字符 \w:匹配任何数字、字母、字符==...

    在实际例子中学习正则表达式(高效率)

    正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 最近整体学习了一下正则表达式的知识,发现还是在例子中进行学习效率...

    Java中的正则表达式 -- 示例详解

    大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则...

    正则表达式C#实现帮助类

    正则表达式是一种用于匹配和操作文本的工具,它基于特定的语法规则。以下是一些常见的正则表达式规则: 1. 字符类(Character classes):字符类用方括号 [ ] 表示,可以匹配其中的任何一个字符。例如,[abc] 表示...

    初学者python笔记(re模块、正则表达式完全解析)

    今天总结一下正则表达式,它用来解决模糊匹配的问题,几乎在所有编程语言中都可以用,尤其在python爬虫中,它是一门必修知识; 所谓模糊匹配,就是在匹配字符串中,有一部分是确定的,另一部分是不确定的值但有范围...

Global site tag (gtag.js) - Google Analytics