什么是正则表达式?\n正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文\n\n正则表达式的特点:\n1. 灵活性、逻辑性和功能性非常强;\n\n2. 可以迅速地用极简单的方式达到字符串的复杂控制。\n\n3. 对于刚接触的人来说,比较晦涩难懂。\n\n正则表达式用途\n判断字符串是否符合某一规则(判断是否符合手机号、邮箱规则)。\n\n从一个字符串中找出符合规则的所有子字符串(取HTML标签名)。\n\n正则表达式的格式?\n"/表达式/[修饰符]"\n\n当使用正则表达式时要注意什么?\nPHP中使用正则规则一定要加代表正则的标识 / /\n\nphp中正则表达式常用相关函数是什么\nPreg_match_all(正则表达式、匹配字符串、匹配到的东西放入数组)\n\n该函数会返回匹配到的次数(可能是0),或者如果发生错误返回FALSE\n\npreg_replace(正则表达式、替换成什么、匹配字符串)\n\n该函数会返回替换后的结果\n\n正则表达式的语法——字符(一)\n数字:\d\n\n非数字:\D\n\n空白字符(空格、制表符、换页符等):\s\n\n非空白字符:\S\n\n单词字符(26个英文字母+数字+下划线):\w\n\n非单词字符:\W\n\n正则表达式的语法——字符(二)\n字符集合:[单个字符或字符区间],用于匹配集合内字符\n\n比如:\n\n[a-z]表示a-z这26个小写字母\n\n[0-9a-z]表示0-9这10个数字和a-z这26个小写字母\n\n[123a-h]表示包含数字1,2,3和a-h这8个字母\n\n注意:两个不同的字符段间一定不要用逗号隔开\n\n非集合字符:[单个字符或字符区间],用于匹配非集合内字符\n\n比如:\n\n[0-9]表示匹配所有非数字字符\n\n[^a-zA-Z]表示匹配所有非字母字符\n\n字符集合的数字区间该注意什么?\n数字区间正则只能匹配0-9的数字,因为正则只能一位一位的匹配,所以超过9以外的数字只是我们给的概念,对于正则机制来说它是认不到的,比如[100-120]就无法被匹配\n\n正则表达式的语法——关键字\n() 表示一个整体\n\n^ 匹配输入字符串的开始位置\n\n$ 匹配输入字符串的结尾位置\n\n. 通配符,代表任意字符但不匹配换行\n\n* 匹配0次或者多次\n\n+ 匹配1次或者多次\n\n\ 转义字符\n\n| 两项之间的一个选择\n\n转义字符“\”的使用\n转义字符主要是将一些特殊字符转为普通字符。而这些常用特殊字符有”.”、”?”、”\”等\n\n和$结合使用的注意问题\n如果^和$结合使用且中间没有其他表达式,那么他们中间就不能出现别的字符,不然无法匹配,比如/3bKaTeX parse error: Undefined control sequence: \n at position 61: …匹配呢,可以使用.(通配符)。\̲n̲\n非集合字符的“^”和关键字…\b\B边界限制;|模式选择\n\n好了,该说的都说完了\n\n可以来看CTF题吧\n\nhttp://b-regex-1s.lab.aqlab.cn/?id=1\n\n\u003C?php \nKaTeX parse error: Undefined control sequence: \n at position 47: …***********}'; \̲n̲Regular= preg_match("/zkaq.key.{2,9}:\/.\/(keykey)/i", trim($_GET[“id”]), $match); \nif( KaTeX parse error: Undefined control sequence: \n at position 13: Regular ){ \̲n̲ ̲ ̲die('key: '.key); \n} \n来分析分析吧~~~\n\nKaTeX parse error: Undefined control sequence: \n at position 60: …;   很明显flag就是这个\̲n̲\n\nRegular= preg_match("/zkaq.key.{2,9}:\/.\/(keykey)/i", trim(KaTeX parse error: Can't use function '\"' in math mode at position 6: _GET[\̲"̲id\"]), match); \n这就是flag能出来的条件\n\n又上面说过\n\nPreg_match_all(正则表达式、匹配字符串、匹配到的东西放入数组)\n\n该函数会返回匹配到的次数(可能是0),或者如果发生错误返回FALSE\n\n所以,\n\n/zkaq.key.{2,9}:\/.\/(keykey)/i   是正则表达式\n\n/zkaq.key.{2,9}:\/.\/(keykey)/i \n\n/i     这是修饰符,表示我们输入的key值不限制大小写\n\nzkaq     这是字符串的内容\n\n.*      表示任意字符的任意次数,输入什么都可以\n\nkey    这个是字符串的内容\n\n.{2,9}  表示 最少匹配2个任意字符,最多匹配9个任意字符\n\n:          直接复制下来\n\n\/         表示对斜杠/进行转义,就是直接将/使用\n\n(keykey)    ()是关键字,表示keykey是一个整体,是匹配y的次,即keykey中只能有0个或者多个y\n\n所以呀,flag可以是 \n\nzkaq–key–

[正则表达式]php相关推荐

  1. 通过正则表达式校验手机号码,拿走即用!

    校验手机号码 2021/01/06更新,电信新增了191号段 1. 单纯校验长度 2.正则表达式校验数字 3.正则表达式校验是否是大陆号码 4.正则表达式校验是否是香港号码 //校验长度private ...

  2. Linux shell 学习笔记(15)— shell 正则表达式

    1. 定义 BRE 模式 1.1 纯文本 第一条原则就是:正则表达式模式都区分大小写.这意味着它们只会匹配大小写也相符的模式. $ echo "This is a test" | ...

  3. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册

    前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...

  4. 正则表达式(括号)、[中括号]、{大括号}的区别小结

    正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...

  5. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  6. 正则语法完全正则表达式手册_语法格式重点

    20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...

  7. 正则表达式 - 语法

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: r ...

  8. 正则表达式中的\.表示什么意思

    \ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符.

  9. ?:在正则表达式中什么意思

    "?:"非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用. 单独的"?":匹配前面的子表达式零次或一次. 当"?"紧跟在任 ...

  10. 关于正则表达式 \1 \2之类的问题

    我们创建一个正则表达式 var RegExp = /^(123)(456)\2\1$/; 这个正则表达式匹配到的字符串就是 123456456123 创建另外第二正则表达式 var RegExp1 = ...

最新文章

  1. (转)互斥对象锁和临界区锁性能比较 .
  2. Python爬虫之破解百度翻译--requests案例详解(一)
  3. php安装编译时 configure: error: Cannot find OpenSSL's evp.h
  4. 王者归来!iPhone 13热销立功 苹果重夺销量全球第一
  5. java卡 应用_一种实现多发行方的多应用Java卡的方法与流程
  6. sketchup ruby编程之绘制梯段
  7. C语言程序设计的课程目标,《C语言程序设计》课程标准
  8. 一个程序员的年度计划
  9. HTML中font标签用法
  10. 4个睡眠中的“小动作”,暴露了你的身体状况
  11. Obsidian基本使用
  12. c++中“箭头(-)”和“点号(.)”操作符的区别
  13. mapgis矢量化怎么打分数_MapGIS矢量化基本流程.doc
  14. python中最小公倍数函数_python求最大公约数和最小公倍数的简单方法
  15. 关于EJB,为什么用EJB?为什么不用EJB?
  16. Problem : [usaco2007 Feb]Lilypad Pond
  17. 量子特工显示无法连接服务器,打开量子特攻提示网络异常或者连接不上
  18. 北大青鸟深圳嘉华分享Hibernate基础入门内容
  19. jQuery Ui Tabs插件使用问题记录
  20. ERP管理系统是什么?

热门文章

  1. 自己组装电脑配置清单2023 自己组装电脑需要哪些配件
  2. 逍遥情缘服务器维护没通告,开服才两天等级就落后了?逍遥情缘前期升级要诀请记牢...
  3. linux里创建文件夹、创建文件夹子文件夹、删除文件夹和文件、访问指定目录级返回上一级目录
  4. Ubuntu16.04+Gnome3 锁定屏幕快捷键无效解决办法
  5. 新窗口打开链接target = “_blank“
  6. 苹果手机微信扫码下载pdf文件,出现空白页。
  7. 程设:魔兽世界装备之二
  8. B612和Faceu背后的技术:3d贴纸+AR美妆
  9. c语言定时开关程序,C语言写的简单的定时关机程序
  10. Android监听剪贴板来源,Android如何从剪贴板上获取字符串onPrimaryClipChanged?