Java正则表达式

博客介绍了正则表达式语法,并列举多个常用匹配案例,如匹配中文、双字节字符、空白行、Email地址、手机号、网址URL等,还给出了匹配各类数字及日期的正则表达式,最后列出参考文献。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 正则表达式语法

这里写图片描述

2 常用案例

匹配中文:
[\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):
[^\x00-\xff]

匹配空白行:
\n\s*\r

匹配Email地址:
/^[^.@]+@[^.@]+.[a-z]+$/

匹配手机号:
/^1(3|4|5|7|8)\d{9}$/

匹配网址URL:
[a-zA-z]+://[^\s]*

匹配国内电话号码:
\d{3}-\d{8}|\d{4}-{7,8}

匹配腾讯QQ号:
[1-9][0-9]{4,}

匹配中国邮政编码:
[1-9]\d{5}(?!\d)

匹配18位身份证号:
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$

匹配(年-月-日)格式日期:
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))

匹配正整数:
^[1-9]\d*$

匹配负整数:
^-[1-9]\d*$

匹配整数:
^-?[1-9]\d*$

匹配非负整数(正整数 + 0):
^[1-9]\d*|0$

匹配非正整数(负整数 + 0):
^-[1-9]\d*|0$

匹配正浮点数:
^[1-9]\d.\d|0.\d[1-9]\d$

匹配负浮点数:
^-[1-9]\d.\d|-0.\d[1-9]\d$

参考文献:
维基百科Regular expression

正则表达式善于处理文本,对匹配、搜索和替换等操作都有意想不到的作用。正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率。 正则表达式应用于程序设计语言中,首次是出现在 Perl 语言,这也让 Perl 奠定了正则表达式旗手的地位。现在,它已经深入到了所有的程序设计语言中,在程序设计语言中,正则表达式可以说是标准配置了。 Java 中从 JDK 1.4 开始增加了对正则表达式的支持,至此正则表达式成为了 Java 中的基本类库,使用时不需要再导入第三方的类库了。Java 正则表达式的语法来源于象征着正则表达式标准的 Perl 语言,但也不是完全相同的,具体的可以参看 Pattern 类的 API 文档说明。 我在一次偶然中发现了位于 java.sun.com 站点上的 Java Tutorial,也在那里看到了关于 Java正则表达式教程,感觉它不同于其他的正则表达式教程,文中以大量的匹配实例来进行说明。为了能让 Java 学习者能更好地使用正则表达式,就将其完整地译出了。该教程中所介绍的正则表达式应用仅仅是最为简单的(并没有完全地涉及到 Pattern 类支持的所有正则表达式语法,也没有涉及到高级的应用),适合于从未接触过或者是尚未完全明白正则表达式基础的学习者。在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以直接编译运行。由于当前版本的 Java Tutorial 是基于 JDK 6.0 的,因此其中的示例程序也用到了 JDK 6.0 中的新增类库,但正则表达式在 JDK 1.4 就已经存在了,为了方便大家使用,改写了部分的源代码,源代码类名中后缀为"V4"的表示用于 JDK 1.4 或以上版本,"V5"的表示用于 JDK 5.0 或以上版本,没有这些后缀的类在各个版本中均可以正常使用。 由于译者的水平和技术能力有限,译稿虽经多次校对,难免有疏漏之处,敬请大家批评和指正。若有发现不妥之处,请发送邮件至 FrankieGao123@gmail.com,我会在 blog 中进行勘误,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值