DAY 34 正则表达式

news2024/11/26 18:30:59

正则表达式

REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式, 其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能, 类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。

正则表达式被很多程序和开发语言所广泛支持:vim, less,grep,sed,awk, nginx,mysql等

元字符

基础正则表达式常见的元字符

(支持的工具:grep、egrep、sed、awk)

元字符含义
\*转义字符,用于取消特殊符号的含义,例:\!、\n、\s等
匹配字符串开始的位置,例:^ a、^ the、^ #、^ [a-z]
$匹配字符串结束的位置,例:word、^ 匹配空行
.匹配除\n之外的任意的一个字符,有且仅有一个。例:go.d、g…d
*匹配前面子表达式0次或者多次,例:goo*dgo.*d
[list]匹配list列表中的一个字符,例:go[ola]d,[abc]、[a-z]、[a-z0-9]
[^list]匹配任意非list列表中的一个字符,例:[ ^A-Z0-9],[ ^a-z]匹配任意一位非小写字母
[[:alpha:]]代表任意一个大小写英文字母,相当于[A-Za-z]
[:[:digit:]]代表任意一个十进制数字,相当于[0-9]
[[:alnum:]]代表任意一个大小写英文字母及数字,相当于[A-Za-z0-9]
\ {n\ }匹配前面的子表达式n次,例:go{2}d、 '[0-9]{2}'匹配两位数字
\ {n,\ }匹配前面的子表达式不少于n次,例:go{2,}d'[0-9]{2,}'匹配两位及两位以上数字
\ {n,m\ }匹配前面的子表达式n到m次,例:go{2,3}d'[0-9]{2,3}'匹配两位到三位数字

注: egrep、 awk使用{n}、{n,}、{n, m}匹配时 "{ }" 前不用加" \ "

^   表示匹配字符串开始的位置,匹配行首

$   表示匹配字符串末尾的位置,匹配行尾

*  匹配前面子表达式0次或者多次, .:匹配除\n之外的任意的一个字符,有且只有一个

[list]

[list] 匹配括号内的任意一个字符,只能匹配单个字符

[ ^list] ,^在括号内表示取反。即匹配括号内字符以外的任意一个字符,只能匹配单个字符

 复合使用

^与$复合使用

 ^与 [^list] 复合使用

 {n}

{n} 匹配前面的子表达式n次

 {n,}

{n,} 匹配前面的子表达式不少于n次

 
{n,m}

{n,m} 匹配前面的子表达式n到m次

 egrep,awk在使用{n}、{n,}、{n,m}时,括号{}前不需要加反斜杠\。如果加了\,反而失去效果

grep -E 可以实现 egrep 的效果

扩展正则表达式元字符 

支持的工具:egrep、 awk、 grep-E、 sed -r)

字符作用
+表示匹配前面的子表达式1次以上
?表示匹配前面的子表达式0或者1次

( )

将括号里的内容看成一个整体
|以或的方式匹配字符串

+   表示匹配前面的子表达式1次以上

匹配电话号码

要求:

匹配 025 开头的区号。

电话号码要5 或者 8开头的八位数。

格式如下:

 匹配电子邮箱

电子邮箱:

用户名@子域名.[二级域名].顶级域

要求:

  1. 用户名:长度要求在6-18位,任意大小写英文,任意数字,除了@符号和空格以外的其它任意符号字符,开头只能是 _ 或者字母。
  2. 子域名.[二级域名]:长度任意,符号只能包含 - _ .
  3. .顶级域名:长度在2-5,任意大小写英文。
  4. 完整匹配。

需求分解:

 用户名长度要求在6-18位    {6,18}
 除了@符号和空格以外的其它任意符号字符    [^@ ]
 开头只能是 _ 或者字母       ^[a-zA-Z_]
 ​
 长度任意,符号只能包含-_.    [a-zA-Z0-9-_.]+
 ​
 长度在2-5,任意大小写英文    .[a-zA-Z]{2,5}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day13 信号机制 (上)

目录 信号的概念 信号的发送和定时器 信号的函数 定时器函数 信号的捕捉 信号的概念 概念: 信号是软件层次上对中断机制的一种模拟,是一种异步通信方式,所有信号的产生及处理都是有内核完成的。 信号的产生: 1、按键产生…

Excel常用函数公式20例

目录 一、【IF函数条件判断】 二、【多条件判断】 三、【条件求和】 四、【多条件求和】 五、【条件计数】 六、【多条件计数】 七、【条件查找】 八、【多条件查找】 九、【计算文本算式】 十、【合并多个单元格内容】 十一、【合并带格式的单元格内容】 十二、…

SpringBoot整合minio实现对象存储

分布式文件系统应用场景 互联网海量非结构化数据的存储需求电商网站:海量商品图片视频网站:海量视频文件网盘:海量文件社交网站:海量图片 minio的概念 Minio是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊…

淘宝天猫数据分析工具推荐(竞品数据监控查询)

在当前的电商环境下,天猫平台的商家非常多,且不同商家的营销策略、手段等都不尽相同。对于商家而言,面对庞大的竞争对手,做好对竞争对手的监控工作也是一个非常重要的课题。 商家做好竞品监控的好处有哪些呢? 1、做好竞…

想毕业我阿里P8测开?除非把整条业务线都裁了.我的底气何来?

简单介绍一下自己,某985硕士,现在阿里智能事业部,视频云中台,测试开发岗。年纪嘛,快接近你们说的去送外卖的年纪了。主要的工作职责是参与制定测试保障策略和建立测试保障体系,开发和维护定制的自动化测试工…

cm-14.1 Android系统启动过程分析(n)- 关机/重启/重置/升级的那些事(偏嵌入式方向)

声明 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。本文参考了一些书籍的若干章节。本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编…

Linux-初学者系列——篇幅3_操作界面获取帮助

操作界面获取帮助-目录1、获取帮助信息-man2、获取帮助信息-help3、获取帮助信息-info上篇: Linux-初学者系列——篇幅2_系统命令界面 利用帮助命令自学:man help info1、获取帮助信息-man 查看命令和部分文件帮助说明信息 使用方法: man [参数选项]…

Linux-系统大概介绍

桌面和终端基本使用 使用CtrlAlt可以取消状态,利于TabAlt切屏 在Linux中,WIN键是Super键 打开终端,终端有点像Windows的命令行,然后Ctrlaltf2可以切换为纯命令行,Ctrlalt是调出鼠标,Ctrlaltf1切回图形用户…

Unity使用webSocket与服务器通信(三)——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

一、通信时会传输哪些内容 1、字符串数据 简单的字符串:比如登录请求信息,登录结果返回的信息。 用json系列化的字符串:比如上传一个表到服务器,让它写入到数据库中。 读取文件的时候,读取的是string内容。 2、二进制…

如何使用Midjourney自己设计独特的Logo,常用的提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、提示技巧二、图案标志(图形)1.最小线条标志(Minimal Line Marks)2.渐变标志(Gradient Marks)3.中式标志(Chinese Style Marks)三、抽象/几何标志四、徽章设计五、吉祥物Logo六、平面设计七、其它一些Logo八、好用的Midjourney提示词网站生成…

Java通过继承的方法来实现长方形的面积和体积

目录 前言 一、测试.java类 1.1运行流程(思想) 1.2代码段 二、Changfangxing.java类 1.1运行流程(思想) 1.2代码段 三、Jxing.java类 1.1运行流程(思想) 1.2代码段 1.3运行截图 前言 1.若有选择…

【通用篇】chrome调试技巧

一、前言 Google Chrome 是一款由 Google 公司开发的免费网页浏览器,它的特点是速度快、安全、简单易用。它的市场份额长期位居全球第一,受到了广泛的用户和开发者的欢迎。 Chrome DevTools 是 Chrome 浏览器内置的一组开发者工具,旨在帮助…

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行 使用tensorflow object detection进行训练检测 参考原始代码:https://github.com/tensorflow/models/tree/master/research 我用的是1.x的版本 所以环境必须有gpu版…

初级算法-二叉树

主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-二叉树一、递归遍历二、迭代遍历三、统一迭代法四、层序遍历五、翻转二叉树六、对称二叉树七、二叉树的最大深度八、二叉树的最小深度九、完全二叉树的节点个数十、平衡二叉树十一、二叉树…

浅说黄河三门

黄河是一首雄浑的诗。 黄河是一幅神奇的画。 她从雪域高原走来,一路接百川、纳细流,穿山越岭。 在行至内蒙古托尧托县的河口镇时,骤然调头南下,滚滚河水如一把利剑,将偌大的黄土高原一劈两半。 在秦晋两省的边界线上…

网络安全自学笔记+岗位介绍

我就在这个行业,目前湖南,薪资就没必要说了,高就对了。 这个行业优势就是工资高,缺点就需要一直学,卷得要死,不是跟别人卷,而是自己卷,一会后面细说 这个行业目前分为几个岗位&#…

Hadoop之HBase

文章目录一、HBase简介二、HBase结构1.1HBase逻辑结构1.2HBase物理结构1.3HBase基础架构三、HBase安装配置3.1单机模式3.2集群搭建四、HBase JAVA API一、HBase简介 《HBase官方文档》的原文地址是:http://hbase.apache.org/book.html W3Cschool.cn进行整理翻译 ht…

C++linux高并发服务器项目实践 day6

Clinux高并发服务器项目实践 day6exec函数族介绍execlexeclp其他进程控制进程退出孤儿进程僵尸进程进程回收wait()函数waitpid()函数exec函数族 介绍 exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说&#xff…

【路径规划】Dubins路径

简介 在无障碍物的情况下,路径规划中最简单的形式,就是将路径看作是由直线段和常曲率圆弧段组成,这就是Dubins路径。Dubins路径可以简单的理解为:在最大曲率限制下,平面内两个由方向的点间的最短可行路径是 CLC 路径或…

[STM32F103C8T6]基于LCD和DHT11、HC08的温湿度检测系统并上传服务器

项目实际图 本次项目需要整合LCD1602、DHT11、HC08、继电器 1.首先是LCD1602显示程序 封装管脚,这样的话写时序的时候不用随时都在哪儿HAL_GPIO_WritePin #define RS_GPIO_Port GPIOB #define RW_GPIO_Port GPIOB #define EN_GPIO_Port GPIOB #define RS_Pin GPI…