正则表达式(Regular Expression)详解

embedded/2024/9/22 23:56:40/

一、简介

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母、数字)和特殊字符(\、?、[等),可以用来描述和匹配字符串的特定模式。正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。

二、正则表达式的字符详解

1、字面符号(普通字符)

  • 字母和数字:表示它们本身,例如所有的字母(包含大小写)和数字;
  • 空格:表示空格字符;
  • 标点符号:表示标点符号本身,例如 !,

2、特殊字符

(1) 量词

  • . : 匹配任意单个字符,除了换行符。
  • *:匹配前一个表达式零次或多次。
  • +:匹配前一个表达式一次或多次。
  • ?:匹配前一个表达式零次或一次。
  • {n}:匹配前一个表达式恰好 n 次。
  • {n,}:匹配前一个表达式至少 n 次。
  • {n,m}:匹配前一个表达式至少 n 次,最多 m 次。

(2) 边界符号

  • ^: 匹配以什么字符串开头。
  • $: 匹配以什么字符串结尾。
  • \b:
  • \B

(3) 转义字符 \

有时候在我们查找 . 或者 * 等特殊字符的时候,会有一些问题出现,因为这些字符已经变成特殊字符具有特殊含义,所以我们没有办法指定这些特殊字符。当出现这种情况,我们就得使用\来取消这些字符的特殊意义,这就叫转义。所以,我们应该使用 \. 和\*。当然,要查找\本身,你也得用\\

(4) 字符类

表达式含义
\d匹配数字
\w匹配字符
\s匹配空格
\D匹配非数字
\W匹配非字符
\S匹配非空格

(5) 其他特殊字符

表达式含义
[]字符类,匹配方括号内的任意一个字符。
|逻辑或操作符,匹配两个表达式中的任意一个。
()分组,用于将多个表达式组合为一个整体。

三、实践

1、手机号码

手机号码通常以(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])其中的一个开头,总共11位,即如下:

^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$

2、16进制

0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
允不允许以0头

  • 不允许

^[123456789ABCDEFabcdef][0123456789ABCDEFabcdef]*
或者
^[1-9A-Fa-f][0-9A-Fa-f]*

  • 允许

[0123456789ABCDEFabcdef]+

3、2进制

允不允许以0头

  • 不允许

^1[01]*

  • 允许

[01]+


http://www.ppmy.cn/embedded/20397.html

相关文章

村庄集中式生活废水处理设备技术工艺

诸城市鑫淼环保小编带大家了解一下村庄集中式生活废水处理设备技术工艺 工艺: 生物接触氧化法指由浸没在污水中的填料和曝气系统构成的污水处理方法,在有氧条件下,污水与填料表面的生物膜广泛接触,使污水得到净化。填料指在污水处…

java:观察者模式

java:观察者模式 1 前言 观察者模式,又被称为发布-订阅(Publish/Subscribe)模式,他定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所…

企业智能名片小程序:AI智能跟进功能助力精准营销新篇章

在数字化浪潮的推动下,企业营销手段不断迭代升级。如今,一款集手机号授权自动获取、智能提醒、访客AI智能跟进及客户画像与行为记录于一体的企业智能名片小程序,正以其强大的AI智能跟进功能,助力企业开启精准营销的新篇章。 通过深…

JAVA 中间件之 Mycat2

Mycat2应用与实战教程 1.Mycat2概述 1.1 什么是MyCat 官网: http://mycatone.top/ Mycat 是基于 java 语言编写的数据库中间件,是一个实现了 MySQL 协议的服务器,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和…

D-Wave 推出快速退火功能,扩大量子计算性能增益

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:1400字丨6分钟阅读 摘要:量子计算公司 D-Wave 宣布在其 Leap™ 实时量子云服务中的所有量子处理单元 (QPU) 上推出新的快速退火功能。…

Kafka 3.x.x 入门到精通(08)——对标尚硅谷Kafka教程

Kafka 3.x.x 入门到精通(08)——对标尚硅谷Kafka教程 5. Kafka优化5.1 资源配置5.1.1 操作系统5.1.2 磁盘选择5.1.3 网络带宽5.1.4 内存配置5.1.5 CPU选择 5.2 集群容错5.2.1 副本分配策略5.2.2 故障转移方案5.2.3 数据备份与恢复 5.3 参数配置优化5.4 数…

leetcode 每日一题目 (树的直径 +DFS的深刻理解)

如下是题目的简单描述: 给你一棵二叉树的根节点 root ,二叉树中节点的值 互不相同 。另给你一个整数 start 。在第 0 分钟,感染 将会从值为 start 的节点开始爆发。 每分钟,如果节点满足以下全部条件,就会被感染&…

刷机维修进阶教程---开机定屏 红字感叹号报错 写字库保资料 救砖 刷官方包保资料的步骤方法解析

在维修各种机型 中经常会遇到开机定屏 进不去系统,正常使用无故定屏进不去系统或者更新降级开机红色感叹号的一些故障机。但顾客需要报资料救砖的要求,遇到这种情况。我们首先要确定故障机型的缘由。是摔 还是更新降级 还是无故使用重启定屏等等。根据原因来对症解决。 通过…