正则表达式

简介: 正则表达式

正则表达式,什么是正则表达式呢?
正则表达式(Regular Expression,简称RegEx)是一种用于匹配字符串中字符组合的模式。可以帮助我们对文本字符串进行搜索、替换、分割和校验等操作。
正则表达式并不是Java所独有的特性,而是一种强大且灵活的工具,任何语言都可以结合它来实现功能。最早是由Perl语言中发展来的。
为什么是对字符串来进行操作呢?因为String是一种很强大的类型,支持任何类型的转换,用字符串都可以表示这些类型。
正则表达式由普通字符(例如字母和数字)以及特殊字符(称为元字符)组成,这些元字符具有特殊的含义,用于指定模式匹配的规则。
普通字符就不说了,元字符有以下分类:
元字符
.:匹配除换行符之外的任意单个字符。
[]:匹配方括号内的任意一个字符(字符类)。

  [^]:匹配不在方括号内的任意一个字符(否定字符类)。
  \d:匹配一个数字字符,等价于 [0-9]。
  \D:匹配一个非数字字符,等价于 [^0-9]。
  \w:匹配一个单词字符(字母、数字或下划线),等价于 [A-Za-z0-9_]。
  \W:匹配一个非单词字符,等价于 [^A-Za-z0-9_]。
  \s:匹配任何空白字符(空格、制表符、换行符等)。
  \S:匹配任何非空白字符。
  限定符
  *:匹配前面的子表达式零次或多次。
  +:匹配前面的子表达式一次或多次。
  ?:匹配前面的子表达式零次或一次。
  {n}:匹配前面的子表达式恰好n次。
  {n,}:匹配前面的子表达式至少n次。
  {n,m}:匹配前面的子表达式至少n次,但不超过m次。
  定位符
  ^:匹配输入字符串的开始位置。
  $:匹配输入字符串的结束位置。
  分组和引用
  (exp):匹配exp并捕获文本到自动命名的组里。
  (?:exp):匹配exp但不捕获匹配的文本。
  \n:引用编号为n的捕获组匹配的文本。
  选择符
  |:匹配两个或多个分支选择的任意一个。
目录
相关文章
|
7月前
|
Arthas 监控 Java
Arthas profiler(使用async-profiler对应用采样,生成火焰图)
Arthas profiler(使用async-profiler对应用采样,生成火焰图)
1077 10
|
11月前
|
弹性计算 监控 Serverless
云端问道9期方案教学
本文介绍了Serverless的发展历程及SAE(Serverless Application Engine)产品。首先,回顾了云计算从物理机、虚拟机到容器化再到Serverless的演进过程,并解释了Serverless的核心特点:无需管理底层资源、自动弹性伸缩、聚焦业务价值。接着,详细介绍了SAE的功能与优势,包括简化部署流程、支持多种弹性策略和提供丰富的运维工具。SAE的收费模式主要基于CPU和内存使用量,辅以请求数和流量计费,用户可以选择按量付费或预付费资源包。最后,通过极氪汽车、南瓜电影、视野数科和SKG等实际案例,展示了SAE在不同行业的应用效果。
299 44
|
11月前
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
262 1
|
11月前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
392 1
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
12月前
|
Java UED Spring
Springboot通过SSE实现实时消息返回
通过Spring Boot实现SSE,可以简单高效地将实时消息推送给客户端。虽然SSE有其限制,但对于许多实时消息推送场景而言,它提供了一种简洁而强大的解决方案。在实际开发中,根据具体需求选择合适的技术,可以提高系统的性能和用户体验。希望本文能帮助你深入理解Spring Boot中SSE的实现和应用。
5634 1
|
存储 C语言
C语言:一维数组的不初始化、部分初始化、完全初始化的不同点
C语言中一维数组的初始化有三种情况:不初始化时,数组元素的值是随机的;部分初始化时,未指定的元素会被自动赋值为0;完全初始化时,所有元素都被赋予了初始值。
1363 2
|
安全 Linux 网络安全
Kibana 最常见的“启动报错”或“无法连接ES集群服务”的故障原因及解决方案汇总
Kibana 最常见的“启动报错”或“无法连接ES集群服务”的故障原因及解决方案汇总
Kibana 最常见的“启动报错”或“无法连接ES集群服务”的故障原因及解决方案汇总
|
监控 算法 SEO
谷歌霸屏外推技术原理,谷歌留痕霸屏怎么做?
优化您的网站:对每个网站进行优化,包括关键字研究、元标记、内容优化和内部链接。
757 0
谷歌霸屏外推技术原理,谷歌留痕霸屏怎么做?
|
Java Maven C++
VS Code 创建maven项目
VS Code 创建maven项目
1478 0
|
前端开发
前端提交POST请求却变成GET请求的原因及解决方法
前端提交POST请求却变成GET请求的原因及解决方法
1444 3