PHP 正则的使用基础入门

PHP 正则表达式是一种强大的工具,它可以用来匹配、查找和替换字符串。在PHP中,可以使用preg函数库来进行正则匹配。下面是PHP正则表达式的使用基础入门攻略。

正则表达式语法

正则表达式语法由一系列字符和元字符(符号)组成。其中常用的元字符包括:

  • .:匹配任意字符
  • ^:匹配行首(以此符号后面的字符为行首)
  • $:匹配行尾(以此符号前面的字符为行尾)
  • *:匹配任意次数的前面的字符
  • +:匹配至少一次的前面的字符
  • ?:匹配零次或一次前面的字符
  • {n}:匹配前面的字符n次
  • {n,}:匹配前面的字符至少n次
  • {n,m}:匹配前面的字符至少n次,但不超过m次
  • []:匹配方括号中的任意一个字符
  • |:或的意思,匹配符号左边或右边的内容
  • ():匹配括号中的内容,并记住所匹配的结果
  • \d:匹配任意数字,相当于[0-9]
  • \w:匹配任意字母、数字、下划线,相当于[a-zA-Z0-9_]
  • \s:匹配任意空白字符,包括空格、制表符、换行符等等
  • \D:匹配任意非数字字符,相当于[^0-9]
  • \W:匹配任意非单词字符,相当于[^a-zA-Z0-9_]
  • \S:匹配任意非空白字符

preg函数库

在PHP中,可以使用preg函数库来进行正则表达式的匹配。使用preg函数需要掌握以下几个函数:

  • preg_match($pattern, $subject):尝试从subject中匹配pattern指定的正则表达式。如果匹配成功,返回1;否则返回0。
  • preg_match_all($pattern, $subject, $matches):尝试从subject中匹配所有符合pattern指定的正则表达式。如果匹配成功,返回匹配到的次数,并将结果存入matches数组中。
  • preg_replace($pattern, $replacement, $subject):在subject中查找pattern,并用replacement替换匹配到的内容。

示例一

下面是一个简单的示例,用正则表达式来验证邮箱地址的格式是否正确:

$email = "user@example.com";
if (preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $email)) {
    echo "邮箱格式正确";
} else {
    echo "邮箱格式不正确";
}

运行结果:

邮箱格式正确

上面的正则表达式解释如下:

  • /:正则表达式必须以斜杠开始和结束;
  • ^:匹配行首;
  • [a-zA-Z0-9._%+-]+:匹配任意字母、数字、下划线、百分号、加号、减号、点号的至少一次出现(邮箱用户名);
  • @:匹配@字符;
  • [a-zA-Z0-9.-]+\.:匹配任意数字、字母、点号、短横线的至少一次出现,再加上一个点号(邮箱域名);
  • [a-zA-Z]{2,}:匹配至少两个字母的邮箱后缀。

示例二

下面是一个示例,使用正则表达式来替换HTML中的图片链接:

$html = '<img src="example.jpg">
         <img src="another_example.png">';
$new_html = preg_replace("/<img src=\"(.*?)\">/","<img src=\"http://example.com/$1\">",$html);
echo $new_html;

运行结果:

<img src="http://example.com/example.jpg">
<img src="http://example.com/another_example.png">

上面的正则表达式解释如下:

  • /:正则表达式必须以斜杠开始和结束;
  • <img src=\":匹配<img src="这个字符串;
  • (.*?):匹配任意字符,包括空白字符,至少出现一次,尽可能少地匹配;
  • ">:匹配">这个字符串。

使用$1表示替代字符串中第一个子组(即匹配到的图片链接)。这里的$1表示在这个位置插入匹配到的内容。

以上就是正则表达式的基础入门攻略,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP 正则的使用基础入门 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php array_filter除去数组中的空字符元素

    当我们遍历数组时,有时候需要剔除数组中的空字符元素以得到有效数据。array_filter() 函数可以帮助我们完成这项任务。 函数原型 在介绍使用方法前,先看一下该函数的原型: array array_filter ( array $input [, callable $callback [, int $flag = 0 ]] ) 参数说明 $input:…

    PHP 2023年5月26日
    00
  • php通过sort()函数给数组排序的方法

    以下是详细的讲解: 1. sort()函数介绍 sort()函数是php内置的用于对数组进行排序的函数。该函数通过改变原数组的顺序来实现排序,而不是创建一个新的数组。sort()函数有两个可选参数,分别为sort_flags和sort_array。其中,sort_flags参数用于指定排序的方式(例如按照大小写敏感,或按照数字大小等),而sort_array…

    PHP 2023年5月26日
    00
  • 学习php设计模式 php实现策略模式(strategy)

    学习PHP设计模式之策略模式(strategy): 什么是策略模式? 策略模式是一种行为模式,它能让你定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。举个例子,我们需要根据不同的用户类型(比如,普通用户、高级用户和VIP用户)来计算每种用户的优惠价格。如果不使用策略模式,我们便需要用if…else if语句来判断用户类型,同时包含每个分类…

    PHP 2023年5月27日
    00
  • 微信小程序多列表渲染数据开关互不影响的实现

    实现微信小程序多列表渲染数据开关互不影响,可以采用以下步骤: 1. 技术选型 我们可以使用微信小程序提供的组件框架,例如wxml和组件页面来构建多列表渲染数据开关。 2. 组件设计 首先,我们需要将每个列表和对应的开关组成一个小组件,这样可以使代码更加模块化,易于维护和扩展。 示例代码: <view wx:for="{{items}}&quo…

    PHP 2023年5月23日
    00
  • php实现在线考试系统【附源码】

    PHP实现在线考试系统攻略 本教程将介绍如何用PHP语言实现一个简单的在线考试系统,主要涉及到的技术包括HTML、CSS、JavaScript、PHP和MySQL。我们将通过以下步骤来实现在线考试系统。 步骤一:创建数据库 首先,在MySQL中创建一个名为“examsys”的数据库,并为该数据库添加一个名为“questions”的表。questions表应包…

    PHP 2023年5月24日
    00
  • php禁用函数设置及查看方法详解

    PHP禁用函数设置及查看方法详解 什么是PHP禁用函数? PHP禁用函数是指在PHP配置文件中将某些函数禁用掉。当我们在使用PHP编写Web应用时,为了保证应用的安全性,我们可能需要限制某些函数的使用,这就需要进行PHP禁用函数设置。 如何设置PHP禁用函数? PHP禁用函数的设置需要修改PHP配置文件php.ini中的配置项,因此需要有管理员权限。而一些虚…

    PHP 2023年5月26日
    00
  • 在PHP程序中运行Python脚本(接收数据及传参)的方法详解

    下面我将为您详细介绍如何在PHP程序中运行Python脚本,并进行数据传递。 准备工作 在进行下一步操作之前,我们需要确保已经安装好以下环境: PHP 5.4或以上版本 Python 2.7或以上版本 Apache或NGINX等web服务器 步骤一:编写PHP脚本 首先,我们需要在PHP程序中编写相关代码,用于调用Python脚本并向其传递参数以及接收Pyt…

    PHP 2023年5月23日
    00
  • php返回字符串中所有单词的方法

    要返回字符串中所有单词的方法,可以使用正则表达式和 PHP 的 preg_match_all 函数。 下面是具体的步骤: 1. 使用 preg_match_all 函数和正则表达式匹配所有单词 $string = "Hello world! This is a test string."; preg_match_all("/\b…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部