Java正则表达式实战指南

需积分: 3 2 下载量 57 浏览量 更新于2024-11-13 收藏 22KB DOC 举报
"Java正则表达式放心使用" Java正则表达式是编程中处理字符串的强大工具,常用于数据验证、文本处理和搜索替换等场景。本文将深入解析这些常用正则表达式及其应用。 1. **匹配中文字符**: 正则表达式 `[\u4e00-\u9fa5]` 能够匹配所有中文字符,范围覆盖了Unicode中的汉字编码。在处理中文输入或验证时,这个表达式非常实用。 2. **匹配双字节字符**: `[^\x00-\xff]` 可用于匹配除ASCII字符之外的双字节字符,包括汉字和其他非ASCII字符。在计算字符串长度时,考虑到双字节字符与ASCII字符长度不同,这个表达式可以确保准确计算。 3. **匹配空白行**: `\n\s*\r` 用于识别并可能删除空白行。它匹配以换行符 `\n` 开始,后面跟着任意数量的空白字符(如空格和制表符),然后以回车符 `\r` 结束的行。 4. **匹配HTML标记**: `<(\S*?)[^>]*>.*?</\1>|<.*?/>` 这个正则表达式尝试匹配HTML标签,但对复杂的嵌套标签可能无法完全处理。在进行HTML清理或解析时,可能需要更强大的库如Jsoup来确保准确性。 5. **匹配首尾空白字符**: `^\s*|\s*$` 用于去除行首行尾的空白字符,包括空格、制表符等。这对于数据清洗和格式化输出非常有用。 6. **匹配Email地址**: `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*` 这个正则表达式可以用来验证电子邮件地址的格式,但请注意,实际的电子邮件验证可能需要更复杂的方法,因为某些合法但不常见的电子邮件格式可能无法匹配。 7. **匹配网址URL**: `[a-zA-z]+://[^\s]*` 用于匹配基本的URL格式,不过它可能无法涵盖所有合法的URL结构,对于复杂的URL验证,可以考虑使用URL解析库。 8. **匹配账号合法性**: `^[a-zA-Z][a-zA-Z0-9_]{4,15}$` 用于验证以字母开头,长度在5-16字节之间,且仅包含字母、数字和下划线的账户名。 9. **匹配国内电话号码**: `\d{3}-\d{8}|\d{4}-\d{7}` 这个正则表达式可以识别中国地区标准的电话号码格式,如0511-4405222或021-87888822。 10. **匹配腾讯QQ号**: `[1-9][0-9]{4,}` 用于检查一个数字序列是否符合腾讯QQ号码的要求,即至少5位,且从10000开始。 11. **匹配中国邮政编码**: `[1-9]\d{5}(?!\d)` 用于识别6位的中国邮政编码。 12. **匹配身份证**: `\d{15}|\d{18}` 用于检查15位或18位的中国公民身份证号码。 13. **匹配IP地址**: `\d+\.\d+\.\d+\.\d+` 用于提取或验证IPv4格式的IP地址。 14. **匹配特定数字**: - `^[1-9]\d*$` 匹配正整数。 - `^-[1-9]\d*$` 匹配负整数。 - `^-?[1-9]\d*$` 匹配整数。 - `^[1-9]\d*|0$` 匹配非负整数(正整数加0)。 - `^-[1-9]\d*|0$` 匹配非正整数(负整数加0)。 - `^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$` 匹配正浮点数。 以上正则表达式是Java开发中常见的实例,熟练掌握它们能够提高代码的效率和准确性。在实际应用中,可能需要根据具体需求进行调整或扩展,以适应更加复杂的场景。同时,了解正则表达式的元字符、量词、分组等概念也是编写正则表达式的基础。