`
lippeng
  • 浏览: 455580 次
  • 性别: 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地区代码)除外。也是用这种范围方式吗?

相关推荐

    qt使用正则表达式限制lineEdit的输入,对正则表达式进行了封装,可以直接引入,工程编译正常

    `QRegularExpression("\\d+")` 表示匹配一个或多个数字的正则表达式。 在项目中,作者已经对正则表达式进行了封装,这意味着提供了一个易于使用的类或函数,可以直接引入到你的Qt工程中。使用这个封装好的模块,你...

    IP地址的正则表达式

    IPv4是最常用的版本之一,它由四个十进制数字组成,每个数字范围从0到255,数字之间用点号分隔。例如:192.168.1.1。 ### IP地址的结构与规则 IPv4地址的格式可以总结为A.B.C.D,其中A、B、C、D分别代表四个十进制...

    常用java正则表达式

    接着,定义了一个名为`SocialSecurityNumberValidator`的类,在主方法中使用`Pattern.compile`编译正则表达式,并使用`matcher.matches`来检查字符串是否与给定的模式匹配。 通过上述知识点的学习,读者可以了解到...

    正则表达式匹配(自动转换)

    "正则表达式匹配(自动转换)"指的是通过特定的软件或编程库,将正则表达式应用到文本中,自动进行匹配操作,无需用户手动处理。 在描述中提到的"无需再为正则表达式而烦恼",意味着这样的工具或功能提供了便捷的...

    js_正则表达式全攻略

    **解决方案**:使用正则表达式 `/\d+$/g` 进行匹配。 - `\d` 表示匹配任意数字。 - `+` 表示匹配前面的元素一次或多次。 - `$` 表示匹配字符串的结尾。 - `g` 是全局匹配标志,表示在整个字符串范围内查找所有匹配...

    正则表达式必知必会v_1.0.pdf

    在正则表达式中,还有一些特定的元字符,例如数字字符(\d)、非数字字符(\D)、数字、字母或下划线(\w)、非数字、字母或下划线(\W)、空白字符(\s)、非空白字符(\S)等。这些元字符可以用于匹配特定的字符或...

    正则表达式大全 - 收集的最常用正则表达式

    3. 匹配空白行:`ns*r` - 此正则表达式匹配包含任意数量空格、制表符或其他空白字符的行。`n`匹配换行符,`s`匹配任何空白字符,`*`表示前面的元素可以出现零次或多次,`r`在某些环境(如Python)中代表换行符。 4....

    易语言模拟正则表达式匹配

    在“易语言模拟正则表达式匹配”这个主题中,我们主要关注的是如何在易语言环境中实现正则表达式的功能,这对于处理文本数据、进行模式匹配和搜索等任务非常有用。 正则表达式(Regular Expression)是一种强大的...

    正则表达式大全.docx

    $/` - 此正则表达式匹配完整的URL,包括HTTP或HTTPS协议、域名和可选路径。 6. IP 地址:`/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/` - 用于验证IPv4地址的...

    使用正则表达式的模式匹配

    1. **String.prototype.match()**:返回字符串中与正则表达式匹配的所有结果。 2. **String.prototype.search()**:返回匹配项的索引位置,如果没有找到则返回-1。 3. **String.prototype.replace()**:根据提供的...

    Linux中几个正则表达式的用法.doc

    9. **使用扩展正则表达式匹配数字范围**: 使用`echo {1..255}`生成1到255的数字序列,通过`egrep`匹配不同数字范围,如`\&lt;[0-9]\&gt;`匹配单个数字,`\[0-9]\&gt;`匹配10到19等。 10. **显示所有IPv4地址**: `...

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

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

    精通正则表达式(第三版)简体中文版

    - **JavaScript中的正则表达式**:JavaScript的正则表达式对象提供了丰富的功能,包括全局匹配、忽略大小写等选项。 - **.NET框架中的正则表达式**:通过System.Text.RegularExpressions命名空间提供支持。 #### 六...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    根据题目描述,我们需要构建一个正则表达式来匹配一段字符串,该字符串除了允许出现特定字符(例如下划线 `_`)之外,不允许包含任何其他特殊字符。这里的“特殊字符”通常指的是那些不在字母数字字符集范围内的符号...

    使用正则表达式验证一年的12个月份

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作,广泛应用于编程语言中。在IT行业中,正则表达式是处理字符串时不可或缺的一部分,尤其在数据验证、文本提取等方面。在这个场景中,我们需要创建一...

    100个常用正则表达式

    这个正则表达式匹配不包含特殊字符的字符串,如^%&',;=?$"等。 19. 验证汉字:`^[u4e00-u9fa5],{0,}$` 这个正则表达式用于检查字符串是否全由汉字组成。 20. 验证Email地址和Internet URL: - `^w+[-+.]w+)*@w+...

    如何写正则表达式,正则表达式常用实例

    * 使用正则表达式匹配字符串中的数字:`\d+` * 使用正则表达式匹配字符串中的字母: `[a-zA-Z]+` * 使用正则表达式匹配字符串中的邮箱: `\w+@\w+\.\w+` * 使用正则表达式匹配字符串中的 URL: `(http|https)://[a-...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    正则表达式全解及正则表达式学习心得

    正则表达式是字符串模式匹配的强大工具,掌握正则表达式可以让开发者更方便地处理字符串数据。本文将对正则表达式的基本概念、元字符、模式匹配、量词、分组、字符类、边界匹配等方面进行详细的讲解和实践指导。 ...

Global site tag (gtag.js) - Google Analytics