正则表达式

简介: 正则表达式

最近在一个作业中涉及到对字符串的提取,比如:在字符串“2016级信本11001张三”中,要提取此字符串中学生的学号,一般我们可以通过String方法的substring方法来提取,在这里我们也可以通过正则表达式来提取到学生的学号,先上源码。

源码:

实验结果

通过源码我们可以很容易的看出正则表达式主要需要使用到Matcher类和Pattern类,因此如果我们要使用正则表达式我们可以先写出基本的语法:Matcher matcher = Pattern.compile(“”).matcher(“”);此时我们就要来填参数了,在第一个括号内需要填入的是我们需要得到的信息,是一个固定的模式。比如说:我们需要得到学号的信息,因此我们的参数是“班(\\d+)张三”,我们可以简单的理解这里的参数为一个字符串,而这个字符串是由你要的字符串的前面一部分+你想要的字符串+你想要的字符串的后面的部分,其中你想要的字符串用括号扩起来,然后用对应的规则来表示,对应规则我们后面再讲,比如:“信本(\\d)班”则最后的输出结果为1,表示此同学是几班;而matcher后面的参数表示原始字符串,我们可以理解为要从哪个字符串去提取信息,那么这个参数就填哪个。

    在写完第一行代码后我们的工作就已经完成一大半了,接下来我们只需要输出我们想要的信息即可,在输出我们想要的结果时我们需要用matcher的两个方法,matcher.findmatcher.groupmatcher.find我们可以简单的理解为找到接下来可以匹配到的字符串,如果找到我们则打印此字符串;在matcher.group方法中有一个参数,此参数表示我们想要得到第几个括号里的信息,此括号是指Pattern.compile()方法里面的括号,因为我们想要得到第一个括号的内容,因此我们的参数为1,于是就有了我们的代码

While(matcher.find()){

System.out.println(matcher.group(1));

}

至此一个简单的正则表达式就有了,这样就可以得到我们想要得到的字符串。

   再从头分析我们的代码,我们发现正则表达式其实也并不难,其本质上就是进行模式匹配,然而在进行匹配时我们有时候需要得到其他的信息,并不是只是数字,因此此时就要用到相对应的规则,在这里列出了平时我们比较常用的几个:

预定义的字符类 

\d 数字: [0-9]
\D 非数字: [^0-9]
\s 空格符: [ \t\n\x0B\f\r]
\S 非空格符: [^\s]
\w 单词字符: [a-zA-Z_0-9]
\W 非单词字符: [^\w]

表达次数的符号:
符号次数
*  0次或者多次
+  1次或者多次
?  0次或者1
{n} 恰好n
{n,m} n次到m

目录
相关文章
|
Java Docker 容器
|
6月前
|
运维 Kubernetes 监控
Log/Trace/Metric 完成 APIServer 可观测覆盖
12 月 11 日,OpenAI 出现了全球范围的故障,影响了 ChatGPT/API/Sora/Playground/Labs 等服务,持续时间超过四个小时。究其背后原因,主要是新部署的服务产生大量的对 K8s APIServer 的请求,导致 APIServer 负载升高,最终导致 DNS 解析不能工作,影响了数据面业务的功能。面对 APIServer 这类公用基础组件,如何通过 Log/Trace/Metric 完成一套立体的覆盖体系,快速预警、定位根因,降低不可用时间变得非常重要。
218 89
Log/Trace/Metric 完成 APIServer 可观测覆盖
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信阅读小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信阅读小程序的详细设计和实现
144 0
|
小程序
微信小程序:动画(Animation)
简单总结一下微信动画的实现及执行步骤。
268 0
微信小程序:动画(Animation)
|
Windows
.net调用系统软键盘(兼容win7及win10)
原文:.net调用系统软键盘(兼容win7及win10) 没有什么技术说明,也是查询出来的,在此做记录 public class StartKeyBoard    {        public static bool isShowNumBoard = false;        [DllImport("kernel32.
1034 0
|
数据库 Ruby Windows
redmine Windows装配
原文:http://www.myexception.cn/windows/1219064.html   redmine Windows安装 官方地址:http://www.redmine.org/ 所需环境介绍:http://www.
1267 0
|
5天前
|
人工智能 运维 安全
|
3天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!