专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

php正则表达式(php正则表达式大全)

来源:小易整编  作者:小易  发布时间:2023-01-04 05:38
摘要:php正则表达式(php正则表达式大全)正则表达式正则表达式被用来检索或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如:JavaScript、PHP、ASP、JAVA、Perl、C#、.NET、Co...

php正则表达式(php正则表达式大全)

正则表达式

正则表达式被用来检索或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如:JavaScript、PHP、ASP、JAVA、Perl、C#、.NET、ColdFusion、Python、Visual Basic、MYSQL、LINUX、VI编辑器等等语言都支持正则表达式。

简单来说正则表达式就是完成字符串的增、删、改、查。

php正则表达式(php正则表达式大全)

定界符

正则表达式语句需要由分隔符(定界符)闭合包裹,分隔符可以使任意非字母数字, 非反斜线, 非空白字符

经常使用的分隔符是正斜线(/), hash符号(#) 以及取反符号(~)。

建议使用//做为定界符,因为与js一致。

$status =  preg_match('/pfinalClub/', 'pfinalClub.com');var_dump($status);

元字符

元字符是正则表达式中的最小元素,只代表单一(一个)字符。下面是元字符列表

var_dump(preg_match('/\d/', '1'));var_dump(preg_match('/\D/', 'h'));var_dump(preg_match('/\w/', '_'));var_dump(preg_match('/\W/', '@'));var_dump(preg_match('/\s/', ' '));var_dump(preg_match('/\S/', 'h'));var_dump(preg_match('/\n/', "\n"));var_dump(preg_match('/\n/', ''));var_dump(preg_match('/\t/', "\t"));

元字符表(原子表)

在一组字符中匹配某个元字符,在正则表达式中通过元字符表来完成,就是放到方括号中。

匹配聊了 678外的任何字符

$status = preg_match('/[^678]/', 678);var_dump($status);

匹配大小写字母

$status = preg_match('/[a-zA-Z]/', 'a');var_dump($status);

用. 匹配字符

$status = preg_match('/./', 'pfinalClub');var_dump($status);

下面是通过原子表拆分字符串

$str ="1.jpg@2.jpg@3.jpg#4.jpg";$arr = preg_split('/[@#]/',$str); //按正则表达式拆分字符串print_r($arr); //输出结果 Array ( [0] => 1.jpg [1] => 2.jpg [2] => 3.jpg [3] => 4.jpg )

原子组

  • 如果一次要匹配多个元子,可以通过元子组完成

  • 原子组与原子表的差别在于原子组一次匹配多个元子,而原子表则是匹配成功表中的一个元字符就可以

  • 元字符组用()表示

下面是使用正则表达式将pfinalclub 字符中的 pfinal 描红。

$str = "官网www.pfinalclub.com 论坛http://bbs.pfinal.com,我在网名叫pfinal";$preg = "/(pfinal)club/is";$newStr= preg_replace($preg, '<span style="color:#f00">\1club</span>', $str);echo $newStr;

匹配字符边界

如果想匹配字符的边界,边界包括空格、标点符号、换行等,可以使用正则表达式的匹配字符边界修饰符如下。

$status = preg_match('/^pfinalClub$/', 'pfinalClub');var_dump($status); //返回真

选择修释符

| 这个符号带表选择修释符,也就是 | 左右两侧有一个匹配到就可以。

下面是通过选择修释符将域名修改为 pfinalClub

$str = "http://www.baidu.com与新浪网http://www.sina.com";$preg = "/\.(baidu|sina)\./is";echo preg_replace($preg, '.pfinalClub.', $str);

匹配域名后缀

$str = '来了,老弟!有问题就在 pfinalClub.com 或 pfinal.com';$preg = '/(pfinalClub|pfinal)\.com/';$replace = '<a href="http://www.\1.com">\1.com</a>';echo preg_replace($preg, $replace, $str);

重复匹配

如果要重复匹配一些内容时我们要使用重复匹配修饰符,包括以下几种。

因为正则最小单位是元字符,而我们很少只匹配一个元字符如a、b所以基本上重复匹配在每条正则语句中都是必用到的内容

var_dump(preg_match('/^.*$/', '')); //* 零个及空字符串也是可以的var_dump(preg_match('/^[0-9]+$/', '1976')); // 返回真var_dump(preg_match('/^9?$/', '99')); // 返回假var_dump(preg_match('/^9{2}$/', '99')); // 返回真var_dump(preg_match('/^[0-9]{2,}$/', '123')); //返回真var_dump(preg_match('/^[0-9]{2,3}$/', '1234')); // 返回假,只能2~3位

下面匹配域名操作

$web = 'baidu.com';var_dump(preg_match('/^[a-z-0-9-]+\.(com|net|com\.cn|org|cn)$/', $web));

下面是把 h1标签内容加上超链接

$str = <<<html<h1>hello pfinalClub</h1>html;echo preg_replace('/<h1>(.+)<\/h1>/', '<a href="http://www.pfinalClub.com">\1</a>', $str);

禁止重复匹配

正则表达式在进行重复匹配时,默认是贪婪匹配模式,也就是说会尽量匹配更多内容,但是有的时候我们并不希望他匹配更多内容,这时可以通过?进行修饰来禁止重复匹配。

$str = '123456';preg_match('/\d+?/',$str,$matches);print_r($matches);

因为增加了 ? 所以只匹配数字1

下面是使用禁止贪婪符替换将h1标签内容倾斜处理

$str = "<h1>你好</h1><h1>PF南丞</h1>";$preg = '/<h1>(.*?)<\/h1>/';$replace = '<h1><em>\1</em></h1>';echo preg_replace($preg,$replace,$str);

下面是替换h1-h6标签内容,就不需要使用禁止贪婪符了

$str = "<h1>你好</h1><h2>PF南丞</h2>";$preg = '/<h([1-6])>(.*)<\/h\1>/';$replace = '<h\1><em>\2</em></h\1>';echo preg_replace($preg,$replace,$str);

模式修正符

正则表达式在执行时会按他们的默认执行方式进行,但有时候默认的处理方式总不能满足我们的需求,所以可以使用模式修正符更改默认方式。

\i修正符不匹分大小示例

$str = 'https://www.pfinalClub.com PF南丞';$preg = '/https:\/\/www.pfinalClub.com/i';$replace= '<a href="\0">\0</a>';echo preg_replace($preg,$replace,$str);

\s 将字符串示为单行操作

$preg = '#(<h1>)(.*?)(</h1>)#s';preg_match_all($preg,$str,$matches);//print_r($matches); $replace = '\1<span style="color:red">\2\3';echo preg_replace($preg,$replace,$str);

\m 使用 ^ 与 $ 按单行操作文本

$str = <<<php#1 2022-02-12PF南丞@#100雅虎网#2 2033-09-11PFinalphp;$preg = '/^#\d+.*[\r|\n]$/m';preg_match_all($preg, $str, $matches);print_r($matches);

\x字符忽略空白和添加正则注释

添加注释

$str='pfinalClub.com';$preg = '/^h   # 这是匹配以 h 开始的内容/x';echo preg_replace($preg,'',$str);

当设置了\x后# 会被忽略,如果正则中使用#需要转义处理

$str=<<<php#1PF南丞#1#2PFinal#2php;$preg = '/^\#\d  #匹配以数字开始+.* $ #后跟任何字符/mx';echo preg_replace($preg,'',$str);

\U 与?功能相似意为禁止贪婪匹配

$str = <<<php<h1>PF南丞</h1><h1>PF南丞小哥</h1>php;$preg = '#<h1>.*</h1>#sU';preg_match_all($preg,$str,$matches);print_r($matches);

\A 与 ^限定符使用效果相似,必须以目标字符串开始。下面是验证邮箱例子

$str = 'lampxiezi@qq.com';$preg = '/\w+@[\w\.]+/A';preg_match_all($preg,$str,$matches);print_r($matches);

\D 修正符使用不允许以换行结束

$str = <<<php3a\nphp;$preg = '/\d+a$/D';preg_match_all($preg,$str,$matches);print_r($matches);

常用函数

preg_match

获取第一个匹配的内容

$str= '1@2@3';preg_match('/\d+/',$str,$matches);print_r($matches);

preg_match_all

获取所有匹配的内容

$str= '1@2@3';preg_match('/\d+/',$str,$matches);print_r($matches);

preg_split

通过正则表达式拆分字符串

$str= '1@2#3';$arr = preg_split('/@|#/',$str);print_r($arr);

preg_replace

通过正则表达式替换

$str= '1@2#3';echo preg_replace('/@|#/','-',$str);

preg_replace_callback

使用回调函数进行替换操作

$str = '1@2@3';echo preg_replace_callback('/\d+/',function ($matches) {return $matches[0]+100;}, $str);


本文地址:百科问答频道 https://www.neebe.cn/wenda/886616.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • phpMyAdmin是什么意思?

    phpMyAdmin是什么意思?

    phpMyAdmin是一个用PHP编写的MySQL的管理界面程序,它通过Web浏览器实现MySQL的管理,操作MySQL数据库更加容易,不必使用命令行。phpMyAdmin的功能很强大,能实现MySQL的各种管理操作,能够执行SQ...

  • 正则表达式教程,正则表达式的基本用法

    正则表达式教程,正则表达式的基本用法

    正则表达式教程,正则表达式的基本用法无论是前端、后端,或者是客户端,还是算法;甚至是普通的非开发的用户,我觉得正则表达式都有必要去学习了解,因为它可以极大的提升我们的工作效率,这点对于开发人员来说可能体会更加深刻,特别是在定位线上问题的时候...

  • phpstorm怎么配置php环境,PhpStorm如何配置php的环境

    phpstorm怎么配置php环境,PhpStorm如何配置php的环境

    phpstorm怎么配置php环境,PhpStorm如何配置php的环境前言PhpStorm配置php环境前期准备下载并安装好PhpStorm软件下载php+apache并安装好,或者直接安装wamp、phpstudy等一键环境都是可以的确...

  • php下载安装教程,php下载安装详细介绍

    php下载安装教程,php下载安装详细介绍

    php下载安装教程,php下载安装详细介绍一、PHP环境安装流程  说明:最近在搭建个人网站,环境有用到PHP,特此记录。本文安装案例是以PHP8.0.0版本为示例,「开始安装前建议先将第三步骤抛出异常的依赖安装,这样安装的时候就无需逐个解...

  • 小偷程序源码,php小偷程序实例代码

    小偷程序源码,php小偷程序实例代码

    小偷程序源码,php小偷程序实例代码小偷程序其实就是利用了php中的一特定函数实现采集别人网站的内容,然后通过正则分析把我们想要的内容保存到自己本地数据库了,下面我来介绍php小偷程序的实现方法,有需要的朋友可参考。在下面采集数据过程中fi...

  • php四舍五入函数(php四舍五入方法)

    php四舍五入函数(php四舍五入方法)

    php四舍五入函数(php四舍五入方法)经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已~~主要是:ceil,floor,round,intval.一、ceil- 进一法取整floatceil(floatvalue)返回...

  • phpstudy怎么安装,phpstudy使用教程

    phpstudy怎么安装,phpstudy使用教程

    phpstudy怎么安装,phpstudy使用教程百度搜索phpstudy官网进行下载安装。配置我们在完成安装之后还不能马上进行正常的使用,我们打开刚安装好的php,点击启动WNMP,然后点击启动Apache和MySQL(我在点击启动WAM...

  • thinkphp框架漏洞总结

    thinkphp框架漏洞总结

    ThinkPHP框架漏洞总结Thinkphp简介ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPH...

  • 周排行
  • 月排行
  • 年排行

精彩推荐