PHP快速入门09-正则相关,附一定要学会的20个高频使用案例

这篇具有很好参考价值的文章主要介绍了PHP快速入门09-正则相关,附一定要学会的20个高频使用案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文已收录于PHP全栈系列专栏:PHP快速入门与实战

PHP快速入门09-正则相关,附一定要学会的20个高频使用案例

一、正则表达式介绍

正则表达式(Regular Expression)是一种字符序列,用于描述一组字符串匹配某个模式或格式。

它由一些特殊的字符和普通字符组成,可以表示一些特定的文本模式,如手机号码、邮箱、网址等等。正则表达式在很多程序设计语言中都得到了广泛应用,如Python、Java、C++等等。合理的使用正则表达式往往会使我们的效率事半功倍。

常用的正则表达式元字符包括:

  • ^:表示匹配字符的开头。
  • $:表示匹配字符的结尾。
  • *:表示匹配前面的字符出现任意次数。
  • +:表示匹配前面的字符出现至少一次。
  • ?:表示匹配前面的字符出现零次或一次。
  • .:表示匹配任意一个字符。
  • []:表示匹配方括号内的某个字符。
  • ():表示将其中的表达式作为一个整体来匹配。

例如,使用正则表达式“\d{11}”可以匹配11位的数字串,即手机号码。

正则表达式虽然非常强大,但也有其缺点,即复杂度较高,难以阅读和维护,因此需要慎重使用。

二、正则高频案例20个

在编程中,正则表达式经常被用来处理文本数据,如验证用户输入、搜索字符串、替换文本等。

以下是使用 PHP 编写的 20 个正则表达式示例:

2.1 检查字符串是否以字母开头

if (preg_match('/^[a-zA-Z]/', $string)) {
    echo "First character is a letter";
} else {
    echo "First character is not a letter";
}

2.2 检查字符串是否以数字开头

if (preg_match('/^[0-9]/', $string)) {
    echo "First character is a number";
} else {
    echo "First character is not a number";
}

2.3 检查字符串是否包含特定字符

if (preg_match('/[aeiou]/', $string)) {
    echo "String contains a vowel";
} else {
    echo "String does not contain a vowel";
}

2.4 检查字符串是否以特定字符结尾

if (preg_match('/[.]$/', $string)) {
    echo "String ends with a period";
} else {
    echo "String does not end with a period";
}

2.5 检查字符串是否为纯数字

if (preg_match('/^[0-9]+$/', $string)) {
    echo "String is all digits";
} else {
    echo "String is not all digits";
}

2.6 检查字符串是否为纯字母

if (preg_match('/^[a-zA-Z]+$/', $string)) {
    echo "String is all letters";
} else {
    echo "String is not all letters";
}

2.7 检查字符串是否为有效的电子邮件地址

if (preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/', $string)) {
    echo "String is a valid email";
} else {
    echo "String is not a valid email";
}

2.8 检查字符串是否为有效的 URL

if (preg_match('/^(http|https):\/\/[a-z0-9\-]+\.[a-z0-9\-]+(\/[a-z0-9\-._~:?#\[\]@!$&\'()*+,;=%]*)?$/i', $string)) {
    echo "String is a valid URL";
} else {
    echo "String is not a valid URL";
}

2.9 检查字符串是否为有效的 IP 地址

if (preg_match('/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', $string)) {
    echo "String is a valid IP address";
} else {
    echo "String is not a valid IP address";
}

2.10 检查字符串是否为有效的日期格式

if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $string)) {
    echo "String is a valid date";
} else {
    echo "String is not a valid date";
}

2.11 检查字符串是否为有效的时间格式

if (preg_match('/^(0?[1-9]|1[0-2]):[0-5][0-9] (am|pm)$/i', $string)) {
    echo "String is a valid time";
} else {
    echo "String is not a valid time";
}

2.12 检查字符串是否为有效的电话号码

if (preg_match('/^\+?\d{1,3}?[- .]?\(?\d{3}\)?[- .]?\d{3}[- .]?\d{4}$/', $string)) {
    echo "String is a valid phone number";
} else {
    echo "String is not a valid phone number";
}

2.13 检查字符串是否包含至少一个字母和一个数字

if (preg_match('/(?=.*[a-zA-Z])(?=.*[0-9])/', $string)) {
    echo "String contains at least one letter and one number";
} else {
    echo "String does not contain at least one letter and one number";
}

2.14 检查字符串是否为有效的邮政编码

if (preg_match('/^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/', $string)) {
    echo "String is a valid postal code";
} else {
    echo "String is not a valid postal code";
}

2.15 检查字符串是否为有效的货币格式

if (preg_match('/^\$?\d+(\.\d{1,2})?$/', $string)) {
    echo "String is a valid currency";
} else {
    echo "String is not a valid currency";
}

2.16 检查字符串是否包含至少一个大写字母和一个小写字母

if (preg_match('/(?=.*[a-z])(?=.*[A-Z])/', $string)) {
    echo "String contains at least one lower case letter and one upper case letter";
} else {
    echo "String does not contain at least one lower case letter and one upper case letter";
}

2.17 检查字符串是否为有效的车牌号码

if (preg_match('/^(京|津|沪|渝|冀|豫|云|辽|黑|湘|皖|鲁|新|苏|浙|赣|鄂|桂|甘|晋|蒙|陕|吉|闽|贵|粤|青|藏|川|宁|琼)([A-HJ-NP-Z])([A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})$/', $string)) {
    echo "String is a valid license plate number";
} else {
    echo "String is not a valid license plate number";
}

2.18 检查字符串是否为有效的身份证号码

if (preg_match('/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9xX]$/', $string)) {
    echo "String is a valid ID card number";
} else {
    echo "String is not a valid ID card number";
}

2.19 检查字符串是否包含至少一个非字母和数字字符

if (preg_match('/\W/', $string)) {
    echo "String contains at least one non-letter and non-number character";
} else {
    echo "String does not contain at least one non-letter and non-number character";
}

2.20 检查字符串是否为有效的 HTML 标签

if (preg_match('/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/', $string)) {
    echo "String is a valid HTML tag";
} else {
    echo "String is not a valid HTML tag";
}

总结

以上就是关于本篇文章介绍的内容,正则相关,附一定要学会的20个高频使用案例,后续更多内容将收录在专栏PHP快速入门与实战中,感谢大家支持。文章来源地址https://www.toymoban.com/news/detail-416221.html

到了这里,关于PHP快速入门09-正则相关,附一定要学会的20个高频使用案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV入门(十九)快速学会OpenCV 18 圆环检测

    作者:Xiou 霍夫变换除了用来检测直线外,也能用来检测其他几何对象。实际上,只要是能够用一个参数方程表示的对象,都适合用霍夫变换来检测。用霍夫圆变换来检测图像中的圆,与使用霍夫直线变换检测直线的原理类似。 在霍夫圆变换中,需要考虑圆半径和圆心(x坐标

    2024年02月16日
    浏览(49)
  • OpenCV入门(二十八)快速学会OpenCV 27 图像匹配

    作者:Xiou 如果说SIFT还很年轻,SURF更年轻,那么ORB就还处于婴儿期。ORB首次发布于2011年,作为SIFT和SURF的一个快速代替品。该算法发表在论文“ORB:an efficient alternative to SIFT or SURF”上,可以在 http://www.willowgarage.com/sites/default/files/orb_final.pdf 处找到PDF格式的论文。ORB融合了FAS

    2023年04月09日
    浏览(42)
  • 5.2 Mybatis快速入门,轻松学会常用12种注解开发

    通过 《上文》,我们完成了 SpringBoot整合Mybatis ,那么接下来,我们就来使用Mybatis访问MySQL数据库! MyBatis的强大在于它的语句映射,它提供了 注解和XML映射 两种方式,都是为了减少我们的使用成本,屏蔽JDBC代码细节,节省代码,从而让我们更专注于SQL代码!本文主要使用

    2023年04月25日
    浏览(38)
  • 软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)

    问题1:请自我介绍下? 核⼼要素: 个⼈技能优势+⼯作背景+经验亮点 参考回答: 第一种:基本信息+离职理由 ⾯试官您好,我叫张三,来⾃番茄市,在软件测试⾏业有 3 年的⼯作经验。做过 Web/APP及⼩程序项⽬的测试⼯作,有独⽴负责整个项⽬的测试经验。 由于个⼈原因从

    2024年02月06日
    浏览(50)
  • AI绘画 | 一文学会Midjourney绘画,创作自己的AI作品(快速入门+参数介绍)

    首先,生成将中文描述词翻译成英文 然后在输入端输入: /imagine prompt:Bravely running boy in Q version, cute head portrait 最后,稍等一会即可输出效果 说明: 下面的U1、U2、U3、U4代表的第一张、第二张、第三张、第四张图片。点击可以生成对应图片的单个图。如下图所示。 V1、V2、V

    2024年02月12日
    浏览(58)
  • Web3.0 的特点及你一定要学会的应用

    什么是Web3.0 Web 3.0是一个读、写和拥有的时代,区别于Web1.0和Web2.0,用户创造的数字内容,所有权归用户所有,不依赖中心化平台。 Web 3.0的一个重要核心,即去中心化,Web3.0是以区块链为底层技术支撑的互联网演变方向,我们统称为价值互联网。   简单的说价值互联网就是

    2024年02月20日
    浏览(26)
  • 怎么视频抠图?一键AI智能抠图,这招你一定要学会

    在日常的生活中我们都喜欢通过视频的方式来记录生活中的美好时刻;但是在拍摄的过程中,可能会背景杂乱的情况,想要删掉却又觉得有点可惜,那有没有什么办法可以解决这个问题呢? 其实大家在生活中经常会遇见这些问题,自己出去拍摄的视频或者是保存的视频素材都

    2024年02月02日
    浏览(41)
  • JavaScript从入门到精通系列第三十一篇:详解JavaScript中的字符串和正则表达式相关的方法

      文章目录 知识回顾 1:概念回顾 2:正则表达式字面量 一:字符串中正则表达式方法 1:split 2:search 3:match 4:replace         正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来。

    2024年01月17日
    浏览(53)
  • 电脑正常登录QQ微信,但浏览器无法打开网页,这个你一定要学会!

    电脑能正常登录微信/QQ,但是浏览器无法打开网页的情况时有发生。掌握这三个方法,就能轻松解决问题! 首先 按Win+R , 输入CMD , 回车 输入ping baidu.com , 回车 ▲ 网络正常情况有回复 有【来自xxx的回复:字节=xx……】就说明网络是正常的 ▲ 网络异常情况 如果不通,就

    2024年02月04日
    浏览(78)
  • 【Java从0到1学习】09 正则表达式

    在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包