广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP正则表达式
  • 129
分享到

PHP正则表达式

正则表达式php前端 2023-09-02 09:09:56 129人浏览 八月长安
摘要

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

什么是正则表达式

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

正则表达式的特点:

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

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

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

正则表达式用途

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

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

正则表达式的格式?

"/表达式/[修饰符]"

当使用正则表达式时要注意什么?

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

php中正则表达式常用相关函数是什么

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

该函数会返回匹配到的次数(可能是0),或者如果发生错误返回FALSE

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

该函数会返回替换后的结果

正则表达式的语法——字符(一)

数字:\d

非数字:\D

空白字符(空格、制表符、换页符等):\s

非空白字符:\S

单词字符(26个英文字母+数字+下划线):\w

非单词字符:\W

正则表达式的语法——字符(二)

字符集合:[单个字符或字符区间],用于匹配集合内字符

比如:

[a-z]表示a-z这26个小写字母

[0-9a-z]表示0-9这10个数字和a-z这26个小写字母

[123a-h]表示包含数字1,2,3和a-h这8个字母

注意:两个不同的字符段间一定不要用逗号隔开

非集合字符:[^单个字符或字符区间],用于匹配非集合内字符

比如:

[^0-9]表示匹配所有非数字字符

[^a-zA-Z]表示匹配所有非字母字符

字符集合的数字区间该注意什么?

数字区间正则只能匹配0-9的数字,因为正则只能一位一位的匹配,所以超过9以外的数字只是我们给的概念,对于正则机制来说它是认不到的,比如[100-120]就无法被匹配

正则表达式的语法——关键字

() 表示一个整体

^ 匹配输入字符串的开始位置

$ 匹配输入字符串的结尾位置

. 通配符,代表任意字符但不匹配换行

* 匹配0次或者多次

+ 匹配1次或者多次

\ 转义字符

| 两项之间的一个选择

转义字符“\”的使用

转义字符主要是将一些特殊字符转为普通字符。而这些常用特殊字符有”.”、”?”、”\”等

^和$结合使用的注意问题

如果^和$结合使用且中间没有其他表达式,那么他们中间就不能出现别的字符,不然无法匹配,比如/^3b$/表示3开头b结尾,所以只有3b才能被匹配,如果写了3acb就无法被匹配。什么情况下才能被匹配呢,可以使用.(通配符)。

非集合字符的“^”和关键字“^”的区别

非集合字符的“^”可理解为排除字符,排除操作,一般放在[]中,如[^1-5], 表示该字符不是1-5之间的数字;而关键字的“^”表示行开始,如"^ab"表示以ab开头的字符串。

正则表达式的语法——限定符

{n} 例如0{8} 表示只有连起来8个0才会被匹配

{n,} 例如0{2,} 表示只要2个0及其以上的就会被匹配

{n,m} 例如0{2,4} 表示最少匹配2个0,最多匹配4个0

注:被匹配时,默认匹配最多的次数

正则表达式的语法——修饰符

i 表示不区分大小写

A 匹配规则必须从头开始匹配

s 表示.将匹配一切字符

x 表示正则表达式中的空白字符会被忽略

e 代码执行仅限preg_replace()

匹配模式的优先级是什么?(优先级从高到低排) 

\转义字符;()[]大原子和原子表;*+?{n}{n,}{n,m}重复匹配(匹配次数);^$\b\B边界限制;|模式选择

好了,该说的都说完了

可以来看CTF题吧

http://b-regex-1s.lab.aqlab.cn/?id=1

来分析分析吧~~~


$key='flag{********************************}';   很明显flag就是这个


$Regular= preg_match("/zkaq.*key.{2,9}:\/.*\/(key*key)/i", trim($_GET["id"]), $match); 
这就是flag能出来的条件

又上面说过

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

该函数会返回匹配到的次数(可能是0),或者如果发生错误返回FALSE

所以,

/zkaq.*key.{2,9}:\/.*\/(key*key)/i   是正则表达式

/zkaq.*key.{2,9}:\/.*\/(key*key)/i 

/i     这是修饰符,表示我们输入的key值不限制大小写

zkaq     这是字符串的内容

.*      表示任意字符的任意次数,输入什么都可以

key    这个是字符串的内容

.{2,9}  表示 最少匹配2个任意字符,最多匹配9个任意字符

:          直接复制下来

\/         表示对斜杠/进行转义,就是直接将/使用

(key*key)    ()是关键字,表示key*key是一个整体,*是匹配y的次,即key*key中只能有0个或者多个y

所以呀,flag可以是 

zkaq--key--:/--/kekey

zkaq22key222222:/4444/kekeyyy

trim($_GET["id"])    是要匹配的字符串

trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。在这里匹配的是id

$match     是匹配到的东西

 

大家去玩玩吧~~~

来源地址:https://blog.csdn.net/weixin_46601374/article/details/122310702

--结束END--

本文标题: PHP正则表达式

本文链接: https://www.lsjlt.com/news/390498.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP正则表达式
    什么是正则表达式? 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文 正则表达...
    99+
    2023-09-02
    正则表达式 php 前端
  • js正则表达式和php正则表达式有什么区别
    本教程操作环境:Windows10系统、javascript1.8.5&&PHP7.1版、Dell G3电脑。js正则表达式和php正则表达式有什么区别总体上,PHP的正则比标准javascript的要强大。PHP有两套正则...
    99+
    2017-12-02
    JavaScript PHP
  • js正则表达式和php正则表达式有哪些区别
    这篇文章主要介绍了js正则表达式和php正则表达式有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js正则表达式和php正则表达式有哪些区别文章都会有所收获,下面我们一起来看看吧。区别:1、PHP正则表...
    99+
    2023-06-29
  • 正则表达式
    2019-01-16 作用 :     路由匹配,表单信息的验证  (字符串匹配) 信息提取(在大段文本中提取信息,爬虫) 字符串的提取和校验 []在中括号内匹配任意项  [^]不匹配中括号中的任意一项    [0-9]  0123......
    99+
    2023-01-30
    正则表达式
  • php正则表达式有哪些
    php正则表达式有"/pattern/"、"^"、"$"、"."、"[]"、"[^]"、"[a-z]"、"[A-Z]"、"[0-9]"、"\d"、"\D"、"\w"、"\W"、"\s"、"\S"、"\b"、"*"、"+"、""、"{n}"、...
    99+
    2023-11-17
    php PHP正则表达式
  • qt 正则表达式
      以上是正则表达式的格式说明 以下是自己写的正则表达式  22-25行 是一种设置正则表达式的方式, 29-34行 : 29行 new一个正则表达式的过滤器对象 30行 正则表达式 的过滤格式 这个格式是0-321的任意数字都可以输入...
    99+
    2023-09-12
    qt
  • java正则表达式
    目录 一、概念 二、正则表达式语法 三、捕获组 四、Pattern类与Matcher类 1.matches( ) 2.split( ) 3.find( ) 4.group 5.start( )和end( ) 6.replace替换 7.re...
    99+
    2023-09-21
    java 正则表达式
  • python 正则表达式
    正则表达式的作用:用来匹配字符串 一、字符串方法 字符串提供的方法是完全匹配,不能进行模糊匹配 s = 'hello world' # 字符串提供的方法是完全匹配,不能进行模糊匹配 print(s.find('ll')) # 2 ...
    99+
    2023-01-30
    正则表达式 python
  • shell正则表达式
         Shell脚本扩展一 正确表达式正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。1. 支持的命令:grep、vim、fi...
    99+
    2022-10-18
  • ORACLE 正则表达式
    ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的...
    99+
    2022-10-18
  • Python_正则表达式
    正则表达式: 匹配字符串   re.compile():用于编译正则表达式,生成一个正则表达式对象,供 match() 和 search() 两个函数使用,一般建议使用这种编译方式 1 import re 2 str = 'abc1de...
    99+
    2023-01-30
    正则表达式
  • python3-正则表达式
    import re print(re.search("xyx","qxyasdfxuyxyxaqd"))#寻找 print(re.match("xya","qxyasdfxuyxyxaqd"))#从头匹配,失败返回None print(re...
    99+
    2023-01-31
    正则表达式
  • python正则表达式
    笔记:一:简介 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 主要介绍Python中常用的正则表达式处理函数 提高工作效率,完成内置函数无法完成的任务! 搜索常用正则表达式!-...
    99+
    2023-01-30
    正则表达式 python
  • Python3 正则表达式
    1.导入正则表达式模块 import re 2.匹配数字 print(re.findall('[0-9]','qwe21ewq')) 输出结果: 3.匹配字符 print(re.findall('[a-zA-Z]','abC')) 输出...
    99+
    2023-01-30
    正则表达式
  • Linux:正则表达式
    目录 一、grep和元字符         1.1、grep         1.2、元字符 二、正则匹配          2.1、查找特定的字符          2.2、使用[]来查找集合字符         要查找short和shi...
    99+
    2023-09-08
    正则表达式 java shell linux 服务器
  • 在python正则表达式中是怎样正确使用正则表达式
    这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python...
    99+
    2023-06-17
  • php能不能用正则表达式
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php能不能用正则表达式?php当然能用正则表达式。PHP 正则表达式(PCRE)正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来...
    99+
    2015-11-14
    php
  • PHP入门指南:正则表达式
    随着互联网的不断发展,网站的数量和复杂度越来越高。在这样的情况下,PHP编程语言逐渐成为了构建动态网站的主流编程语言之一。而正则表达式则是PHP编程中必不可少的一部分之一。本文将带您了解PHP中的正则表达式,从而为您在网站开发过程中提供进一...
    99+
    2023-05-24
    PHP 正则表达式 入门
  • PHP正则表达式有什么用
    这篇文章主要介绍了PHP正则表达式有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP是编写动态WEB页面开发常用的脚本语言,而正则表达式是PHP中很重要的一个部分,...
    99+
    2023-06-17
  • php中正则表达式是什么
    这篇文章主要介绍php中正则表达式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1:简单介绍正则表达式:正则表达式就是描述字符串排列模式的一种自定义语法规则如果可以使用字符串处理函数完成的任务,就不要使用正则表...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作