首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

preg_match:确保开始和结束包含某些内容

preg_match是PHP中的一个函数,用于在字符串中匹配指定的模式。它使用正则表达式来进行匹配,并返回一个布尔值,表示是否找到了匹配的内容。

preg_match函数的语法如下:

代码语言:php
复制
preg_match(pattern, subject, matches)

其中,pattern是要匹配的正则表达式模式,subject是要进行匹配的字符串,matches是一个可选的参数,用于存储匹配结果。

使用preg_match函数可以实现很多功能,比如验证字符串格式、提取字符串中的特定信息等。下面是preg_match函数的一些常见应用场景:

  1. 验证邮箱格式:$email = "example@example.com"; if (preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $email)) { echo "邮箱格式正确"; } else { echo "邮箱格式错误"; }推荐的腾讯云相关产品:腾讯云邮件推送(https://cloud.tencent.com/product/ses
  2. 验证手机号码格式:$phone = "13812345678"; if (preg_match("/^1[3456789]\d{9}$/", $phone)) { echo "手机号码格式正确"; } else { echo "手机号码格式错误"; }推荐的腾讯云相关产品:腾讯云短信(https://cloud.tencent.com/product/sms
  3. 提取HTML中的链接:$html = "<a href='https://www.example.com'>Example</a>"; preg_match("/<a\s+href='([^']+)'>/", $html, $matches); $link = $matches[1]; echo "提取到的链接是:" . $link;
  4. 验证身份证号码格式:$idCard = "44010619900101001X"; if (preg_match("/^\d{17}[\dX]$/", $idCard)) { echo "身份证号码格式正确"; } else { echo "身份证号码格式错误"; }

以上只是preg_match函数的一些常见应用场景,实际上它还可以用于更复杂的匹配需求。在开发过程中,我们可以根据具体的需求,灵活运用preg_match函数来实现字符串的匹配和处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP正则表达式

0-9的字符串 [abc] 匹配任何包含小写字母a,b,c的字符串 [^abc] 匹配任何不包含小写字母a,b,c的字符串 [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9下划线的字符串 \w...匹配任何包含a-zA-Z0-9下划线的字符串 \W 匹配任何不包含a-zA-Z0-9下划线的字符串 \d 匹配任何包含数字字符 \D 匹配任何非数字字符 \s 匹配任何空白字符 \S 匹配任何非空白字符...可以采用多行识别,遇到换行也承认匹配规则 x 忽略掉规则模式中的空白字符 A 强制从头开始匹配 U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束  //修饰符     //i 不区分大小写...preg_split()   $str = preg_split('/a/', 'cbabc');   print_r($str); ---- 行云博客 - 免责申明 本站提供的一切软件、教程内容信息仅限用于学习研究目的...;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

1.6K10
  • PHP.步步为营 | 正则表达式详析 与 诸多运用实例

    元字符与转义 正则表达式中具有特殊含义的字符称之为元字符, 常用的元字符有: \ 一般用于转义字符 ^断言目标的开始位置(或在多行模式下是行首) $断言目标的结束位置(或在多行模式下是行尾)....匹配除换行符外的任何字符(默认) [ 开始字符类定义 ] 结束字符类定义 | 开始一个可选分支 ) 子组的结束标记 ##下面三个元字符与贪婪特性懒惰特性有关(下节讲释) ?...(查阅量词) * 量词,0 次或多次匹配 + 量词,1 次或多次匹配 {自定义量词开始标记 }自定义量词结束标记 \s匹配任意的空白符,包括空格,制表符,换行符 [^\s]代表非空白符...) 注意: 添加的圆括号相当于给要匹配的内容分组, preg_match()是把整体匹配分组匹配的内容都输出了; 具体的可以参考下方demo的实验结果。...正则表达式的搜索替换 正则表达式的搜索与替换在某些方面具有重要用途, 比如调整目标字符串的格式,改变目标字符串中匹配字符串的顺序等。

    1.7K10

    PHP正则表达式_python正则匹配字母

    匹配任何不包含小写字母a,b,c的字符串 [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9下划线的字符串 \w 匹配任何包含a-zA-Z0-9下划线的字符串 \W 匹配任何不包含a-zA-Z0...-9下划线的字符串 \d 匹配任何包含数字字符 \D 匹配任何非数字字符 \s 匹配任何空白字符 \S 匹配任何非空白字符 \b 匹配是否到达了单词边界 \B 匹配没有到达了单词边界 \ 匹配正则中的特殊字符...preg_match('/\$/', '$');//返回1 修饰符 修饰符 说明 i 完全不区分大小写 m 可以采用多行识别,遇到换行也承认匹配规则 x 忽略掉规则模式中的空白字符 A 强制从头开始匹配...U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束 //修饰符 //i 不区分大小写 echo preg_match('/abcd/','AbcD');//返回0 echo preg_match('...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.7K20

    PHP正则表达式

    *com#';//不需要转义/ preg_match($pattern,$str,$match); var_dump( $match); 知道开始结尾的写法了,接下来就是中间的判断了...• () 匹配 ()内的内容 并获取这一匹配。...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹 配的搜索,而不是从包含预查的字符之后开始。 • (?!...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜 索,而不是从包含预查的字符之后开始 有时候最后定界符会有一个字母,如‘/as....*/i’,那这个i又是什么呢,这就是模式修正符; i表示在模式进行匹配进不区分大小写 m将模式视为多行,使用^$表示任何一行都可以以正则表达式开始结束 s如果没有使用这个模式修正符号,元字符中的

    4.6K10

    PHP学习笔记——正则表达式

    1、正则表达式中包含三种元素分别为:量词、元字符、修饰符 2、前导字符串:就是符号前面的一个字符或字符串 量词 说明 匹配任何至少包含一个前导字符串 匹配任何包含零个或多个前导字符串...说明 [a-z] 匹配任何包含小写字母a-z的字符串 [A-Z] 匹配任何包含大写字母A-Z的字符串 [0-9] 匹配任何包含0-9的字符串 [abc] 匹配任何包含小写字母...a,b,c的字符串 [^abc] 匹配任何不包含小写字母a,b,c的字符串 [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9下划线的字符串 \w 匹配任何包含a-zA-Z0-9...下划线的字符串 \W 匹配任何不包含a-zA-Z0-9下划线的字符串 \d 匹配任何包含数字字符 \D 匹配任何非数字字符 \s 匹配任何空白字符 \S 匹配任何非空白字符...1 修饰符 说明 i 完全不区分大小写 m 可以采用多行识别,遇到换行也承认匹配规则 x 忽略掉规则模式中的空白字符 A 强制从头开始匹配 U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束 /

    1.1K30

    PHP正则表达式之量词、元字符、修饰符

    介绍 1、正则表达式中包含三种元素分别为:量词、元字符、修饰符 2、前导字符串:就是符号前面的一个字符或字符串 量词 + 匹配任何至少包含一个前导字符串 * 匹配任何包含零个或多个前导字符串 ?...匹配任意一个字符串 {x} 匹配任何包含x个前导字符串 {x,y} 匹配任何包含 x 到 y 个前导字符串 {x,} 匹配任何包含至少x个前导字符串 ^ 匹配字符串的行首 $ 匹配字符串的行尾 |...0-9的字符串 [abc] 匹配任何包含小写字母a,b,c的字符串 [^abc] 匹配任何不包含小写字母a,b,c的字符串 [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9下划线的字符串...\w 匹配任何包含a-zA-Z0-9下划线的字符串 \W 匹配任何不包含a-zA-Z0-9下划线的字符串 \d 匹配任何包含数字字符 \D 匹配任何非数字字符 \s...A 强制从头开始匹配 U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束 //i 不区分大小写 echo preg_match('/abcd/','AbcD');//返回0 echo

    90542

    PHP 获取网页标题(title)、描述(description)、关键字(keywords)等meta信息

    爬取网页,正则匹配 爬取网页内容,然后进行正则匹配 1)爬取网页内容 1234567891011121314151617181920212223242526272829 function get_siteurl_curlinfo...,从最后一个name结束) 网页编码、乱码问题,似乎可以用 header 函数来解决,但是 content在前,name在后,匹配错误的问题,却没法解决!...name="keywords"/> 匹配出错的原因,即上文我已经在注释里说明的:content在前,name在后,匹配错误(从第一个content开始,从最后一个name结束) 这里,使用 get_meta_tags...方法4,基本可以解决80%的网页抓取问题 此方法4方法3,能够正常解析网页的前提是网页内容不能有乱码, 解决乱码详见方法1方法3,深究代码,注释已给出了四种方法 下面给出测试case,供你验证乱码问题... 标签位于文档的头部,不包含任何内容。 标签的属性定义了与文档相关联的名称/值对。 HTML 与 XHTML 之间的差异 在 HTML 中, 标签没有结束标签。

    4.3K60

    【高级篇】正则表达式之零宽断言详解

    前言 1、什么是零宽断言,为什么要使用零宽断言 2、怎样使用零宽断言 概念 零宽断言,大多地方这样定义它,用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \...=gw)/'; $str=preg_match($parent,$str,$match); var_dump($match); /** 输出结果: int 1 array (size=1) 0...ww)gw/'; $str=preg_match($parent,$str,$match); var_dump($str); var_dump($match); /** 输出: int 1 array...(size=1) 0 => string 'bcgw' (length=4) */ 解析:首先判断字符串是否包含bc,然后判断其后面不是ww,最后匹配gw。...(size=1) 0 => string 'ca' (length=2) */ 解析:第一步,查找字符”abcgwcab”中是否包含有gw,返回结果为true,然后进行第二步,查找gw后面是否有

    92010

    通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理Easy Calc 1

    在每次循环中,使用preg_match函数检查目标字符串 str是否包含当前的黑名单项(即 blackitem)。正则表达式’/’ . blackitem ....在这种模式下,^ 分别匹配每一行的开始结束,而不仅仅是整个字符串的开始结束。...如果在目标字符串中找到任何黑名单字符,即preg_match函数返回true,那么程序将立即停止执行,并输出“what are you want to do?”。...最后,这段代码结束foreach循环。...、类型或字符串的内容、类型、长度等 die()输出内容并退出程序 经过测试只有print_r()函数var_dump()函数可以输出内容 靠这些还远远不够 还需要用到两个函数一个方法 scandir

    27720

    通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理Easy Calc 1

    在每次循环中,使用preg_match函数检查目标字符串 str是否包含当前的黑名单项(即 blackitem)。正则表达式’/’ . blackitem ....在这种模式下,^ 分别匹配每一行的开始结束,而不仅仅是整个字符串的开始结束。...如果在目标字符串中找到任何黑名单字符,即preg_match函数返回true,那么程序将立即停止执行,并输出“what are you want to do?”。...最后,这段代码结束foreach循环。...、类型或字符串的内容、类型、长度等 die()输出内容并退出程序 经过测试只有print_r()函数var_dump()函数可以输出内容 靠这些还远远不够 还需要用到两个函数一个方法 scandir

    34030

    通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理Easy Calc 1

    在每次循环中,使用preg_match函数检查目标字符串 str是否包含当前的黑名单项(即 blackitem)。正则表达式’/’ . blackitem ....在这种模式下,^ 分别匹配每一行的开始结束,而不仅仅是整个字符串的开始结束。...如果在目标字符串中找到任何黑名单字符,即preg_match函数返回true,那么程序将立即停止执行,并输出“what are you want to do?”。...最后,这段代码结束foreach循环。...、类型或字符串的内容、类型、长度等 die()输出内容并退出程序 经过测试只有print_r()函数var_dump()函数可以输出内容 靠这些还远远不够 还需要用到两个函数一个方法 scandir

    34740

    PHP正则表达式笔记与实例详解

    三、 正则表达式的组成部分:        原子包括以下内容:         > 单个字符、数字,如a-z,A-Z,0-9。        ...//正则匹配函数preg_match() //模糊匹配(包含形式) //if(preg_match("/a/","qwertayuio")){ //匹配字串中是否包含a字符 //if(preg_match...("/(abc)/","qwerta bcayuio")){ //匹配字串中是否包含abc字串 //if(preg_match("/[abc]/","qwertbycuiop")){ //匹配字串中是否包含...>/s","",$str); 附录 常用正则表达式 ^d+$  \d 是代表0-9  $必须要以....结束  这是代表非负整数   正则表达式 平时做网站经常要用正则表达式,下面是一些讲解例子...^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 'n' 或 'r' 之后的位置。 $ 匹配输入字符串的结束位置。

    1.1K00

    PHP正则表达式笔记与实例详解

    preg_split — 用正则表达式分割字符串 preg_replace — 执行正则表达式的搜索替换 实例: 1.正则表达式匹配 //正则匹配函数preg_match() //模糊匹配(包含形式...) //if(preg_match("/a/","qwertayuio")){ //匹配字串中是否包含a字符 //if(preg_match("/(abc)/","qwerta bcayuio")){...//匹配字串中是否包含abc字串 //if(preg_match("/[abc]/","qwertbycuiop")){ //匹配字串中是否包含a、b或c字字符 //if(preg_match("/[0.../s","",$str); 附录 常用正则表达式 ^\d+ \d 是代表0-9 必须要以….结束 这是代表非负整数  正则表达式 平时做网站经常要用正则表达式,下面是一些讲解例子,仅供大家参考修改使用...^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 匹配输入字符串的结束位置。

    2.8K40

    PHP利用PCRE回溯次数限制绕过某些安全限制

    is_php($input)) { // fwrite($f, $input); ... } 大意是判断一下用户输入的内容有没有 PHP 代码,如果没有,则写入文件。...他们匹配输入的过程分别是: DFA: 从起始状态开始,一个字符一个字符地读取输入串,并根据正则来一步步确定至下一个转移状态,直到匹配不上或走完整个输入 NFA:从起始状态开始,一个字符一个字符地读取输入串...13 步开始向后匹配;,14 步匹配.,第二个.匹配到了字符串末尾,最后结束匹配。 在调试正则表达式的时候,我们可以查看当前回溯的次数: ? 这里回溯了 8 次。...可见,preg_match 返回的非 1 0,而是 false。...php if(preg_match('/SELECT.+FROM.

    1.7K10

    攻防世界web进阶区blgdel详解

    > xctf环境无法登录,此题先更到这里 我们可以先代码审计,环境好了再写 在结合我们刚开始找的源代码,就是上传文件的操作。 parse_str() 函数把查询字符串解析到变量中。...stream_open() 对path的传参name的传参从字符串到变量,做了一个方法对应。 upload() 过滤了文件内容。 发现< “ ‘ . 文件内容都被替换成了!....search() 判断了是否存在path路径,对当前目录进行遍历,存在path路径,对当前目录进行遍历,存在name相同的文件或者目录替换为空 并列出当前目录。...但是我们可以上传.htaccess文件,但是平常遇到的文件内容都会触发过滤,所以得想想绕过文件内容检测。 ? 御剑有了消息 ? 有一个sql.txt 正则 ?...*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。

    74910

    BUUCTF-Web-WriteUp

    WarmUp【2018-HCTF】 知识点:代码审计,phpmyadmin任意文件包含漏洞 参考:phpmyadmin 4.8.1任意文件包含 涉及函数:$_REQUEST , in_array()...前内容在白名单的要求,函数返回true) 0x04:最后通过目录穿越的到ffffllllaaaagggg里面的内容,也就是flag。...试想一下我们在分号(;)结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。...同样也可以生成某些文件。因此有些人会利用sql注入生成特定代码的文件,然后执行这些文件。将会造成严重的后果。...绕过图片检测 参考:.user.ini文件构成的PHP后门 从SUCTF 2019 CheckIn 浅谈.user.ini的利用 题目是一个文件上传,可以上传jpg、png等文件,但是限制了php,文件内容不能包含

    1.4K20

    PHP--正则表达式样式匹配--小记

    () 函数, 其一般多用了斜杠 /  ,如上例:  preg_match("/^boy/","boy11") 匹配单个字符 :前后加空格即可  \b    -------  preg_match("/...^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符串的结束位置。...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 (?!...匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。 [^xyz] 负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。...\ 匹配词(word)的开始(\)。

    1.9K10

    正则表达式学习笔记

    ,deerchao写的《正则表达式30分钟入门教程》,看完他的文章,基本上可以在实际中使用正则表达式,本文是结合此博客一些其他书籍的内容的学习笔记。...一、基础内容 我认为的基础内容包括以下7点,掌握后可以使用正则匹配很多内容。 1、位置 正则表达式表示位置的字符有^(表示字符串开始)、$(字符串结束)、\b(字符串开始结束)。...$matches[0]将包含完整模式匹配到的文本,$matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。 函数返回:pattern 的匹配次数。...它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后 将会停止搜索。...3、优先用preg_match/命中率最高的匹配项放最左侧 因为其匹配到就停止,而preg_match_all会把全部内容匹配完。

    1.2K120
    领券