一文带你了解PHP正则表达式

最近两天工作当中用正则比较多,有感而发正则的强大,于是写一篇关于正则的文章,下文主要介绍正则在php当中的用法,其他语言其实也类似,正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它通过定义一些特定的规则,来匹配和处理字符串。在PHP中,正则表达式广泛应用于字符串搜索、替换、分割等场景,常见的应用场景,判断邮箱,手机号是否合法,从指定字符段落中扣符合条件的文本,拉取某个网站的内容等等。

关于基本语法:

1. 定界符:在PHP中,正则表达式通常由定界符包裹,如“/”、“#”、“~”等。例如:

preg_match('/\d+/',$str);

2. 元字符:正则表达式中有一些具有特殊意义的字符,称为元字符。常见的元字符有:

  • \d:匹配数字字符
  • \w:匹配字母、数字或下划线
  • \s:匹配空白字符
  • \S: (大写S)表示匹配任何非空白字符,即不是空格、制表符、换行符等的字符
  • .:匹配除换行符以外的任意字符
  • []:匹配括号内的任意一个字符
  • ^:匹配字符串的开始位置
  • $:匹配字符串的结束位置

3. 量词:用于指定匹配字符的数量。常见的量词有:

  • *:匹配前面的子表达式零次或多次
  • +:匹配前面的子表达式一次或多次
  • ?:匹配前面的子表达式零次或一次
  • {n}:匹配前面的子表达式n次
  • {n,}:匹配前面的子表达式至少n次
  • {n,m}:匹配前面的子表达式至少n次,但不超过m次

关于正则修正符:

正则修正符用于修改正则表达式的默认行为,它们可以放在定界符之外,紧跟在最后一个斜杠之后。常见的修正符有:

  • i:忽略大小写
  • m:多行模式,将字符串视为多行
  • s:点号匹配所有字符,包括换行符
  • U:贪婪模式关闭,即默认为非贪婪模式
  • x:忽略正则表达式中的空白字符和注释

例如,使用修正符i进行不区分大小写的匹配:

preg_match('/hello/i', 'Hello World', $matches);

修正符m也很常用,比如要在一段字符串文本里捞数据,经常会用到。

关于PHP正则常用函数:

1. preg_match():用于检查字符串中是否存在匹配正则表达式的子串。返回值为匹配到的次数,0或1。

preg_match('/\d+/',$str,$matches);

 

2. preg_match_all():用于在字符串中查找所有匹配正则表达式的子串,并返回匹配到的次数。

preg_match_all('/\d+/',$str,$matches);

 

3. preg_replace():用于替换字符串中匹配正则表达式的子串。

$str = preg_replace('/\d+/','替换内容',$str);

 

4. preg_split():用于根据正则表达式分割字符串。

$arr = preg_split('/\d+/',$str);

 

实际应用:

1. 验证邮箱格式:

$email = 'example@example.com';if (preg_match('/^\w+@\w+\.\w+$/', $email)) {    echo '邮箱格式正确';} else {    echo '邮箱格式错误';}

2. 提取URL中的域名:

$url = 'https://www.example.com';preg_match('/^(?:http[s]?://)?(?:www\.)?([^\/]+)\//', $url, $matches);echo '域名:' . $matches[1];

3. 替换字符串中的数字为 *

$str = 'abc123def';$str = preg_replace('/\d/', '*', $str);echo $str;  // 输出:abc***def

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90609.html

(0)
guozi's avatarguozi
上一篇 2024年6月7日 上午9:43
下一篇 2024年6月7日 上午9:59

相关推荐

  • 如何选择一家专业的优化公司?

    你是否正在寻找一家专业的优化公司,却被众多的选择困扰?搜索引擎优化是如今互联网行业中不可或缺的一环,但是面对市场上琳琅满目的优化公司,如何选择一家专业的公司却成为了一个难题。在这篇…

    行业资讯 2024年4月2日
    0
  • seo技术网

    想要在互联网上获得更多的曝光率和流量吗?那么你一定不能错过今天要介绍的这个行业——SEO技术网。SEO技术是什么?它又有着怎样的发展历史?它对于网站的作用和重要性又是如何呢?如果你…

    行业资讯 2024年3月30日
    0
  • 如何选择适合自己的m3型虚拟主机?

    你是否正在寻找一款适合自己的虚拟主机?不知道什么是虚拟主机,或者对于m3型虚拟主机还有些疑惑?那么请跟随我一起来探索吧!在这篇文章中,我将为你介绍什么是虚拟主机以及m3型虚拟主机的…

    行业资讯 2024年3月24日
    0
  • 有些网站被屏蔽了怎么才能搜到,屏蔽的网站用什么浏览器打开

    3、这给我们的信息收集和沟通带来了巨大的障碍。例如,您可能想了解某个国家的情况,但无法打开当地媒体网站,或者您可能想与海外的朋友进行视频通话,但发现您的通讯软件被屏蔽。 4、那么为…

    行业资讯 2024年5月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注