随着正则表达式变得越来越强大和易于使用,php正则表达式也成为了一个非常重要的知识点,正则表达式通常用来查找和替换字符串,最常用的就是信息验证,验证用户输入的信息格式是否正确,如邮件格式、电话格式、密码或用户名格式和长度等等。还有比如采集器之类的软件程序中,正则也是必用不可!

正则表达式相对于程序语言来说更难学,而且难记,不过学习一些基本语法和使用方法还是不太难的。

1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。

(1)“+”元字符匹配前面的子表达式一次或多次(大于等于1次)

比如:/codetc+/,能够与“codetcc”匹配,即字母tc后面连续出现一个或多个字母c的字符串相匹配。

(2)“*”元字符匹配前面的子表达式零次或多次(大于等于0次)

比如:/codetc*/能够与“codetc.com”相匹配

(3)“?”元字符匹配前面的子表达式零次或一次

比如:/codetc?/能够“codetcer”匹配,即tc后面可以有0个或者1个c

其他重要的元字符:

\s:用于匹配单个空格符,包括tab键和换行符;

\S:用于匹配除单个空格符之外的所有字符;

\d:用于匹配从0到9的数字;

\w:用于匹配字母,数字或下划线字符;

\W:用于匹配所有与\w不匹配的字符;

. :用于匹配除换行符之外的所有字符。

示例:/\s+/用于匹配目标对象中的一个或多个空格字符

2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^”, “$”, “\b” 以及 “\B”

(1)“^”定位符规定匹配模式必须出现在目标字符串的开头

(2)“$”定位符规定匹配模式必须出现在目标对象的结尾

(3)“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一

(4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内

3.php的正则匹配模式非常灵活,可以指定某一范围

例如:

/[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串

4.可以同时与多种模式选择匹配

x|y:匹配x或y

如/codetc.com|codetc|100/可以与“codetc.com” “codetc” “100”相匹配

5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串

例如:[^codetc]匹配除了codetc字符外的所有东西

上面我们主要讲述了常用的一些语法知识,正则表达式除了难在难记之外,而且还难在运用上,下面来讲讲正则表达式在PHP中的常用函数。

//preg_match("正则表达式","字符串")用于在字符串中查找匹配项

$email = "test01_match@codetc.com";

if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){

echo '匹配成功


';

}else {

echo '匹配失败


';

}

//preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\

$str = "codetc是一个讲述使用PHP开发网站知识的网站";

echo preg_quote($str);

echo "


";

//preg_split("正则","字符串")分割字符串

$php = "+codetc++php网站++++开发技术";

$field = preg_split("/\+{1,}/",$php);

foreach($field as $f){

echo $f." ";

}

echo "


";

//preg_grep("正则","字符串") 与数组匹配后返回新数组

$arr = array("codetc","php网站开发","呵呵","hahaha","测试");

$item = preg_grep("/^php/",$arr);

print_r($item);

echo "


";

//preg_replace("正则","替换内容","原字符串") 很重要,很常用

$a = "欢迎光临http://www.codetc.com/"; //给http开头的加上超链接

echo preg_replace("/http:\/\/(.*)\//","\${0}","$a");

?>

上面程序运行的结果如下:

php在函数使用正则表达式,php正则表达式以及正则函数的使用相关推荐

  1. Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容

    Python函数封装:利用正则表达式compile.findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容 目录 利用正则表达式compile.findall对 ...

  2. 菜鸟教程python正则表达式_Python正则表达式常用函数菜鸟教程

    这篇文章主要为大家详细介绍了Python正则表达式常用函数菜鸟教程,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! Py ...

  3. 28Python正则表达式、正则表达式对象、正则表达式修饰符、表达式模板、表达式实例、match函数、search方法、检索和替换、repl、compile、findall等

    28Python正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. ...

  4. php 匹配多个正则表达式,PHP 正则表达式函数库(两套)

    PHP 正则表达式函数库(两套) 更新时间:2009年10月14日 17:20:57   作者: 正则表达式:用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作 ...

  5. python正则表达式_Python正则表达式简记和re库!

    正则表达式是定义搜索模式的字符序列.通常这种模式被字符串搜索算法用于字符串上的"查找"或"查找和替换"操作,或者用于输入验证. 1. 正则表达式的语法 . 表示 ...

  6. c++正则表达式_Python正则表达式教程-常用文本处理技巧

    介绍: 正则表达式用于识别模式(pattern)是否存在于给定的字符(字符串)序列中.它们有助于处理文本数据,这通常是涉及文本挖掘的数据科学项目的先决条件.您一定遇到过一些正则表达式的应用程序:它们在 ...

  7. ios html正则表达式,ios 正则表达式去html标签

    ios 正则表达式去html标签 [2021-01-27 12:53:55]  简介: php正则表达式去掉html的方法:首先使用"htmlspecialchars_decode" ...

  8. 正则表达式 python_Python正则表达式总结

    之前我们讲解了 正则表达式 的起源.发展.流派.语法.引擎.优化等相关知识,今天我们主要来学习一下 正则表达式在 Python语言 中的应用! 大多数编程语言的正则表达式设计都师从Perl,所以语法基 ...

  9. 正则表达式 - Python 正则表达式 学习笔记 最全整理

    正则表达式 regular expression,用于匹配字符串中字符组成的方法,"用有限的符号表达无限的序列". JavaScript 正则表达式语法如下: /xxx/gi 两条 ...

  10. javascript 正则表达式 转换 java 正则表达式_JavaScript 正则表达式【转】

    一.JavaScript正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索 ...

最新文章

  1. java处理最后一周_Java获取某年某周的最后一天
  2. ORACLE 错误:oralce record is locked by another user
  3. Maven工程的多模块
  4. linux hlist,linux内核V2.6.11学习笔记(2)--list和hlist
  5. 神马是线程?PHP对其具体的应用?应用在哪里?
  6. go 写文件_如何在 Ubuntu 20.04 上安装 Go
  7. mac 安装和使用MongoDB
  8. arcgis api for js入门开发系列十二地图打印(GP服务)
  9. 零百1.8秒的电动车竟然是威马... | 云逛成都车展
  10. C语言和C++中Struct区别
  11. 华为新系统鸿蒙和ios,鸿蒙系统呼之欲出 华为上线新功能和苹果iOS相比如何
  12. Coinbase及Bakkt为Paul Tudor Jones的家族对冲基金提供托管服务
  13. android串口service,Android串口操作库:EZ-SerialPort
  14. java电影推荐系统_基于Mahout的电影推荐系统
  15. 【MTK 6737】Modem编译
  16. 关于电脑新建共享文件夹相关教程
  17. 2021年618小红书行业投放报告,小红书品类种草数据分析
  18. 张艾迪(创始人):解码互联网天才
  19. 【转】让电脑更高效的魔法 – 浅谈高效率PC工作环境的简化、净化与建立方法...
  20. python三个箭头怎么打出来_(Python3)Linux和Windows箭头键按下

热门文章

  1. 使用汇编语言编写第一个程序
  2. 第二天:Vue基础语法
  3. LeetCode简单题之数组的相对排序
  4. 三段式LLVM编译器
  5. Tensor Core技术解析(上)
  6. 2021年大数据Spark(四十九):Structured Streaming 整合 Kafka
  7. Android 白天/夜间模式切换
  8. TabLayout 遇到那些坑 tab标签不显示问题
  9. android 支付宝支付 出现系统繁忙,请稍后重试(ALI10)
  10. android .9图片使用和一些技巧