PHP 正则的使用基础入门

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

基础教程推荐