安全基础 --- 正则表达式
正则表达式是表达文本模式的方法
正则表达式(Regular Expression),简称为正则或Regex,是一个用来描述、匹配和操作字符串的工具。
(1)限定字符
限定字符多用于重复匹配次数
常用限定字符:
| 语法 | 说明 |
|
| 上一项是可选的,最多匹配一次。 |
* | 前一项将被匹配零次或多次。 |
+ | 前一项将被匹配一次或多次。 |
{N} | 上一项完全匹配N次。 |
{N,} | 前一项匹配N次或多次。 |
{N,M} | 前一项至少匹配N次,但不超过M次。 |
(2)元字符
元字符是表示特殊函数的字符,包括以下这些^ $ . [ ] { } - ? * + ( ) | \\
常用元字符:
| 语法 | 说明 |
. | 匹配任何单个字符。 |
| ^ | 匹配行首的空字符串;也代表不在列表范围内的字符 |
| $ | 匹配文本行结尾 |
| \b | 匹配单词的开始或结束(单词边缘的空字符串) |
| \w | 匹配字母或数字或下划线或汉字 |
| \s | 匹配任意空白符 |
| \d | 匹配一个数字字符。等价于[0-9]。 |
grep -h '.zip' test.txt
在文件中查找包含正则表达式“.zip”的文本行grep -h '^zip' test.txt
grep -h 'zip$' test.txt
分别在文件中搜索行首和行尾包含“zip”的文本行
(3)反义字符
| 语法 | 说明 |
| \B | 匹配不是单词开头或结束的位置 |
| \D | 匹配一个非数字字符。 |
| \S | 匹配任何可见字符。 |
| \W | 匹配任何非单词字符。 |
(4)字符类
方括号之中的字符,表示可以任意匹配其中的一个。
| 语法 | 说明 |
| [^x] | 匹配除了x以外的任意字符 |
| [^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
grep -h '[bg]zip' test.txt
匹配包含字符串“bzip”或者“gzip”的任意行grep -h '[^bg]zip' test.txt
匹配不以'b'或'g'开头的行-在方括号中表示一个字符区域
grep -h '^[A-Z]' test.txt
匹配以大写字母开头的行grep -h '[-AZ]' test.txt
匹配以连字符,或大写A,或大写Z开头的行
(5)预定义字符类
-
[:alnum:]字母数字字符。在 ASCII 中,等价于:[A-Za-z0-9] -
[:word:]与[:alnum:]相同, 但增加了下划线字符。 -
[:alpha:]字母字符。在 ASCII 中,等价于[A-Za-z] -
[:blank:]包含空格和 tab 字符。 -
[:cntrl:]ASCII 的控制码。包含了0到31,和127的 ASCII 字符。 -
[:digit:]数字0到9 -
[:graph:]可视字符。在 ASCII 中,它包含33到126的字符。 -
[:lower:]小写字母。 -
[:punct:]标点符号字符。 -
[:print:]可打印的字符。等于[:graph:]中的所有字符,再加上空格字符。 -
[:space:]空白字符,包括空格,tab,回车,换行,vertical tab, 和 form feed.在 ASCII 中, 等价于[\t\r\n\v\f] -
[:upper:]大写字母。 -
[:xdigit:]用来表示十六进制数字的字符。在 ASCII 中,等价于[0-9A-Fa-f]
(6)选择
|表示匹配一系列字符串之中的一个。
echo "AAA" | grep -E 'AAA|BBB'
AAAecho "BBB" | grep -E 'AAA|BBB'
BBB'AAA|BBB'表示匹配字符串'AAA'或者是字符串'BBB'echo "CCC" | grep -E 'AAA|BBB'
grep程序使用-E参数,表示按照正则表达式规则匹配。并且,这个正则表达式放在单引号之中,为的是阻止Shell把|解释为管道操作符。
|可以多个连用,也可以与其他正则规则结合使用。
echo "AAA" | grep -E 'AAA|BBB|CCC'
AAAgrep -Eh '^(bz|gz|zip)' test.txt
附:
-
--:表示范围,如果它不是列表中的第一个或最后一个,也不是列表中某个范围的终点。 -
\<:匹配单词开头的空字符串。 -
\>:匹配单词末尾的空字符串。
| \f | 匹配一个换页符。 |
| \n | 匹配一个换行符。 |
| \r | 匹配一个回车符。 |
| \t | 匹配一个制表符。 |
| \v | 匹配一个垂直制表符。 |
相关文章:
安全基础 --- 正则表达式
正则表达式是表达文本模式的方法 正则表达式(Regular Expression),简称为正则或Regex,是一个用来描述、匹配和操作字符串的工具。 (1)限定字符 限定字符多用于重复匹配次数 常用限定字符: 语…...
【vue】vue面试高频问题之-$nextTick的作用和使用场景
nextTick的作用和使用场景 vue中的nextTick主要用于处理数据动态变化后,DOM还未及时更新的问题,用nextTick就可以获取数据更新后最新DOM的变化 api文档 Vue.nextTick( [callback, context] ) 参数: {Function} [callback]{Object} [context]…...
MySQL学习笔记之SQL语句执行过程查看
文章目录 参数使能查看最近一条SQL执行过程查看profiling打开开后,所有SQL语句执行耗时查看某一条SQL的执行过程指定要查看的性能选项查看所有性能选项 参数使能 以select语句为例,首先打开profile参数: mysql> set profiling 1; Query…...
如何以毫秒精度,查看系统时间以及文件的创建时间
用 cmd 查看系统的时间: powershell -command "(Get-Date -UFormat %Y-%m-%d %H:%M:%S).toString() . ((Get-Date).millisecond)" 用 XYplorer 查看文件的精确创建时间(含30天试用): XYplorer - File Manager for …...
基于机器学习的情绪识别算法matlab仿真,对比SVM,LDA以及决策树
目录 1.算法理论概述 2.部分核心程序 3.算法运行软件版本 4.算法运行效果图预览 5.算法完整程序工程 1.算法理论概述 情绪识别是一种重要的情感分析任务,旨在从文本、语音或图像等数据中识别出人的情绪状态,如高兴、悲伤、愤怒等。本文介绍一种基于…...
jMeter使用随记
参数化BodyData 先制作参数文件 再设置一个csv data set config 最后在body data里面写上参数${xxxxx}...
[语义分割] DeepLab v3(Cascaded model、ASPP model、两种ASPP对比、Multi-grid、训练细节)
Rethinking Atrous Convolution for Semantic Image Segmentation 论文地址:Rethinking Atrous Convolution for Semantic Image SegmentationPytorch 实现代码:pytorch_segmentation/deeplab_v3 这是一篇 2017 年发表在CVPR上的文章。相比 DeepLab V2 有…...
css - Media Query
使用bootstrap的grid system可以在一个较为粗糙的范围得到较好的响应性,但是通过viewport可以看到网站在具体哪个像素点处变得丑陋,再通过css media query来精细调整网页布局。 可以通过media query来提高网页移动响应能力。...
9.python设计模式【外观模式】
内容:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一个子系统更加容易使用。 角色: 外观(facade)子类系统(subsystem classes) UML图 举…...
Webpack5 CopyPlugin的作用
在Webpack 5中,CopyPlugin是一个插件,用于将文件或目录从源位置复制到构建目录中。它的作用是帮助开发人员在构建过程中将静态文件(如图片、字体等)直接复制到输出目录,而无需经过任何处理。 CopyPlugin并不是必须的&…...
kafka服务端允许生产者发送最大消息体大小
1、kafka config服务端配置文件server.properties server.properties中加上的message.max.bytes配置,我目前设置为5242880,即5MB,可以根据实际情况增大。 message.max.bytes5242880 在生产者端配置max.request.size,这是单个消息…...
台阶型Nim游戏博弈论
台阶型Nim游戏 题目 https://www.acwing.com/problem/content/894/ 现在,有一个 n n n 级台阶的楼梯,每级台阶上都有若干个石子,其中第 i i i 级台阶上有 a i a_i ai 个石子( i ≥ 1 i \ge 1 i≥1)。 两位玩家轮流操作,每…...
NestJS 的 中间件 学习
基本概念 中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象。在程序中我们可以让多个中间件串起来一起使用,当多个中间件一起使用时我们可以使用next()调用下一个中间件。 中间件主要是可以实现如下功能: 执行任何代码更改请…...
搭建自己第一个golang程序
概念: golang 和 java有些类似,配置好环境就可以直接编写运行了;这里分两种: 一.shell模式 创建一个go类型的文件 往里面编写代码 二.开发工具模式 这里的开发工具 我选用goland package mainimport "fmt"func mai…...
Mysql加锁过程
1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问…...
财经界杂志财经界杂志社财经界编辑部2023年第19期目录
《财经界》投稿邮箱:cnqikantg126.com(注明投稿“《财经界》”) ●崔编辑Q Q :695548262 微信号:f99832970 名刊名著_国内外名刊名著 财经名刊名著 李少鹏 ;王海蕴; 6-7 发改委专线 六方面发力 看中国经济形势,既要看准当…...
Linux常用命令——dpkg-split命令
在线Linux命令查询工具 dpkg-split Debian Linux中将大软件包分割成小包 补充说明 dpkg-split命令用来将Debian Linux中的大软件包分割成小软件包,它还能够将已分割的文件进行合并。 语法 dpkg-split(选项)(参数)选项 -S:设置分割后的每个小文件最…...
常见的二十种软件测试方法详解
一.单元测试(模块测试) 单元测试是对软件组成单元进行测试。其目的是检验软件组成单位的正确性。测试对象是:模块。 对模块进行测试,单独的一个模块测试,属于静态测试的一类 测试阶段:编码后或者编码前&…...
Python(一)
要做到坚韧不拔,最要紧的是坚持到底。——陀思妥耶夫斯基 2023 6 14~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --根据你自己的操作系统下载对应的。 -- pyhton 文档 --交互方式 使用的工具 --如何启动工具 -- 交互式方式一般在数据分析中…...
git pull无效,显示 * branch master -> FETCH_HEADAlready up to date. pull无效解决方法
报错情况 本地文件夹中删除文件后,git pull无效。显示如下: **** MINGW64 ~/****/haha (master) $ git pull origin master From https://gitee.com/****/haha* branch master -> FETCH_HEAD Already up to date.解决 方法一 命令…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
