今天要写一个正则表达式,来做前端校验。主要部分是 用来匹配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
分享到:
相关推荐
`QRegularExpression("\\d+")` 表示匹配一个或多个数字的正则表达式。 在项目中,作者已经对正则表达式进行了封装,这意味着提供了一个易于使用的类或函数,可以直接引入到你的Qt工程中。使用这个封装好的模块,你...
IPv4是最常用的版本之一,它由四个十进制数字组成,每个数字范围从0到255,数字之间用点号分隔。例如:192.168.1.1。 ### IP地址的结构与规则 IPv4地址的格式可以总结为A.B.C.D,其中A、B、C、D分别代表四个十进制...
接着,定义了一个名为`SocialSecurityNumberValidator`的类,在主方法中使用`Pattern.compile`编译正则表达式,并使用`matcher.matches`来检查字符串是否与给定的模式匹配。 通过上述知识点的学习,读者可以了解到...
"正则表达式匹配(自动转换)"指的是通过特定的软件或编程库,将正则表达式应用到文本中,自动进行匹配操作,无需用户手动处理。 在描述中提到的"无需再为正则表达式而烦恼",意味着这样的工具或功能提供了便捷的...
**解决方案**:使用正则表达式 `/\d+$/g` 进行匹配。 - `\d` 表示匹配任意数字。 - `+` 表示匹配前面的元素一次或多次。 - `$` 表示匹配字符串的结尾。 - `g` 是全局匹配标志,表示在整个字符串范围内查找所有匹配...
在正则表达式中,还有一些特定的元字符,例如数字字符(\d)、非数字字符(\D)、数字、字母或下划线(\w)、非数字、字母或下划线(\W)、空白字符(\s)、非空白字符(\S)等。这些元字符可以用于匹配特定的字符或...
3. 匹配空白行:`ns*r` - 此正则表达式匹配包含任意数量空格、制表符或其他空白字符的行。`n`匹配换行符,`s`匹配任何空白字符,`*`表示前面的元素可以出现零次或多次,`r`在某些环境(如Python)中代表换行符。 4....
在“易语言模拟正则表达式匹配”这个主题中,我们主要关注的是如何在易语言环境中实现正则表达式的功能,这对于处理文本数据、进行模式匹配和搜索等任务非常有用。 正则表达式(Regular Expression)是一种强大的...
$/` - 此正则表达式匹配完整的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()**:根据提供的...
9. **使用扩展正则表达式匹配数字范围**: 使用`echo {1..255}`生成1到255的数字序列,通过`egrep`匹配不同数字范围,如`\<[0-9]\>`匹配单个数字,`\[0-9]\>`匹配10到19等。 10. **显示所有IPv4地址**: `...
正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时...
- **JavaScript中的正则表达式**:JavaScript的正则表达式对象提供了丰富的功能,包括全局匹配、忽略大小写等选项。 - **.NET框架中的正则表达式**:通过System.Text.RegularExpressions命名空间提供支持。 #### 六...
根据题目描述,我们需要构建一个正则表达式来匹配一段字符串,该字符串除了允许出现特定字符(例如下划线 `_`)之外,不允许包含任何其他特殊字符。这里的“特殊字符”通常指的是那些不在字母数字字符集范围内的符号...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作,广泛应用于编程语言中。在IT行业中,正则表达式是处理字符串时不可或缺的一部分,尤其在数据验证、文本提取等方面。在这个场景中,我们需要创建一...
这个正则表达式匹配不包含特殊字符的字符串,如^%&',;=?$"等。 19. 验证汉字:`^[u4e00-u9fa5],{0,}$` 这个正则表达式用于检查字符串是否全由汉字组成。 20. 验证Email地址和Internet URL: - `^w+[-+.]w+)*@w+...
* 使用正则表达式匹配字符串中的数字:`\d+` * 使用正则表达式匹配字符串中的字母: `[a-zA-Z]+` * 使用正则表达式匹配字符串中的邮箱: `\w+@\w+\.\w+` * 使用正则表达式匹配字符串中的 URL: `(http|https)://[a-...
Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...
正则表达式是字符串模式匹配的强大工具,掌握正则表达式可以让开发者更方便地处理字符串数据。本文将对正则表达式的基本概念、元字符、模式匹配、量词、分组、字符类、边界匹配等方面进行详细的讲解和实践指导。 ...