除中文外的正则_Java正则表达式入坑指南,值得点赞!

学IT,好工作,就读北大青鸟_北大青鸟官方网站​www.bdqn.cn
65a488e7ed35c7162654b4a458a45508.png

在日常开发工作中,无论你使用的语言是java、python、shell、golang还是C#。正则表达式是编程语言中几乎绕不开的话题。有了它,可以帮你快速定位到符合条件的文本内容。今天小编带大家一起来学习下正则表达式,相信通过这篇文章的介绍,能为以后的工作提供一个更清晰的思路。

首先给大家介绍一下正则表达式使用的类,在java.util.regex 包中主要包括以下三个类:

1.Pattern

pattern 对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个 Pattern对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

2.Matcher

Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

3.PatternSyntaxException

PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

接下来,通过两个例子为大家演示正则表达式的使用。

使用正则表达式校验手机号是否合法:

c80de37ad5f038042c0947383d8eae4c.png

0e472a43cee255fc6d3a6c72523db904.png

例子输出结果为:

电话字符串[18488888888]是否合法? [false]
电话字符串[14788888888]是否合法? [true]

除了可以帮助大家快速校验数据格式是否正确外,在使用正则表达式时,我们还可以快速提取目标格式的数据内容,这个优势所借助的工具即是捕获组

捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。

捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:

  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)

可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组。

groupCount 方法返回一个 int 值,表示matcher对象当前有多个捕获组。另外还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中。

下面的例子为大家演示通过捕获组生成目标字符串:

c14a6a23e418daff351dd59e9e4dfc37.png

5b90d5a96ec31e8643e454d5fe57a51b.png

实例输出结果为:

DSCS0001/20200113/1898888888820200113101638.mp3

通过以上两个实例,我们可以清晰的看出正则表达式在数据的验证提取目标格式字符串的强大功能。

小福利

下面是小编为大家整理的一些在工作中常用的正则表达式,希望能帮助到大家。

  • 匹配中文字符:

22cb14d9f1e95c1959a702022b6292d2.png
  • 匹配Email地址:

12aefc7730e0a0bd9ef4e72a70a59985.png
  • m-n 位的数字:

3b72f61484101de490915d0feaba5db8.png
  • 密码必须由字母和数字组成,且长度要在6-12位之间:

ad09ed41d73ffd538272c2a1aa8d63b8.png
  • 一年的12个月(01~09和1~12) : ^(0?[1-9]|1[0-2])$

3d04bf12edc9ab4953f36fb83159626a.png
  • 匹配时分秒:

9aef0c915ad49a9912ef05201c2643f7.png
  • IP地址格式:

93b09219a4764743a68546f5fe88b4e3.png
  • 网址匹配包含http、https、ftp协议:

a0cc99639b81dc117f98acfaf0c36096.png

今天这篇文章,通过两个实例为大家详细介绍了正则表达式在编程过程中的强大功能:

  1. 校验数据格式是否正确
  2. 提取目标格式的字符串内容

结合小编整理的一些作用广泛的表达式,相信大家对于我们今天的主题正则表达式有了一个更为清晰的认知。今天的内容就到这里了,下期再见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值