Java正则表达式实战:高效校验技巧
需积分: 3 16 浏览量
更新于2024-09-14
收藏 11KB TXT 举报
Java正则表达式是Java语言中用于处理字符串模式匹配的重要工具,它可以帮助开发者在处理文本数据时进行高效、精确的查找、替换和分割操作。在Java中,正则表达式的使用通常涉及到`java.util.regex`包中的`Pattern`、`Matcher`和`PatternSyntaxException`等类。
1. `Pattern.compile("[\u4e00-\u9fa5]").matcher("Dz").matches()`:这段代码是用来检测字符串是否全由汉字组成的。`\u4e00-\u9fa5`是Unicode范围,表示所有汉字的范围,`matches()`方法会检查整个输入字符串是否都能匹配该正则表达式。
2. 数字相关的正则表达式:
- `^\d+$`:匹配一个或多个数字,确保字符串仅包含数字。
- `^[0-9]*[1-9][0-9]*$`:匹配非零开头的多位数字,即至少包含一位非零数字。
- `^((-\d+)?(0+))$`:匹配负数或零,允许有前导零。
- `^-[0-9]*[1-9][0-9]*$`:匹配负数,至少包含一位非零数字。
- `^-?\d+$`:匹配正负整数,包括零。
- `^\d+(\.\d+)?$`:匹配浮点数,允许有小数部分。
- `^(([0-9]+\.[0-9]*[1-9][0-9]*)?([0-9]*[1-9][0-9]*\.[0-9]+)?([0-9]*[1-9][0-9]*))$`:匹配更复杂的浮点数格式,包括不同精度的正负数。
- `^((-\d+(\.\d+)?)?(0+(\.0+)?))$`:匹配浮点数,允许有前导负号和前导零。
- `^(-(([0-9]+\.[0-9]*[1-9][0-9]*)?([0-9]*[1-9][0-9]*\.[0-9]+)?([0-9]*[1-9][0-9]*)))$`:匹配浮点数,允许有前导负号和不同精度的小数部分。
- `^(-?\d+)(\.\d+)?$`:匹配浮点数,允许有前导负号,但小数部分可以省略。
3. 字符串相关的正则表达式:
- `^[A-Za-z]+$`:匹配仅由英文字母(大小写)组成的字符串。
- `^[A-Z]+$`:匹配仅由大写字母组成的字符串。
- `^[a-z]+$`:匹配仅由小写字母组成的字符串。
- `^[A-Za-z0-9]+$`:匹配由英文字母和数字组成的字符串。
- `^\w+$`:匹配由字母、数字或下划线组成的字符串,相当于`[A-Za-z0-9_]`。
- `^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$`:匹配电子邮件地址。
- `^[a-zA-z]+://`:匹配以特定协议(如http、https)开头的URL。
- `[\u4e00-\u9fa5]`:匹配单个汉字。
- `[\s?]*\r`:匹配可能包含问号的空格或换行符。
- `<(.*)>.*<\/\1>?<(.*)\/>`:尝试匹配HTML标签。
- `(^\s*)?(\s*$)`:匹配字符串两端的空白字符。
- `[^\x00-\xff]`:匹配非ASCII字符。
4. 函数和方法:
- `String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}`:自定义的字符串长度计算函数,考虑到了多字节字符(如中文)的长度。
5. 正则表达式模式:
- `^\S+[a-zA-Z]$`:匹配以非空字符开头,以字母结尾的字符串,常用于验证用户名。
- `\S{6,}`:匹配至少6个非空字符,常用于密码要求。
- `^\d+$`:匹配纯数字字符串,可用于验证电话号码或身份证号等。
- `(.*)(\.jpg?\.bmp)$`:匹配以任何字符开头,以`.jpg`或`.bmp`结尾的字符串,用于图片文件名的验证。
6. 通用正则表达式技巧:
- `*`:表示前面的字符可以出现零次或多次。
- `+`:表示前面的字符必须出现一次或多次。
- `?`:表示前面的字符可以出现零次或一次。
- `{n}`:表示前面的字符必须出现n次。
- `{n,}`:表示前面的字符必须出现n次或更多次。
- `{n,m}`:表示前面的字符必须出现n到m次。
掌握这些Java正则表达式的基本用法和模式,能够极大地提升你在处理文本数据时的效率和准确性,尤其在数据验证、文本分析和数据清洗等场景中,它们是不可或缺的工具。
2021-08-21 上传
2011-08-18 上传
2013-06-27 上传
2023-05-14 上传
2024-04-08 上传
2023-11-07 上传
2023-11-01 上传
2023-05-26 上传
2023-09-05 上传
tomalice10
- 粉丝: 0
- 资源: 2
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能