正则表达式基础

在开始使用正则表达式之前,了解一些基本概念是必要的。

1. 元字符

元字符是正则表达式中的特殊字符,具有特定的意义。以下是一些常见的元字符:

  • .:匹配除换行符以外的任意字符。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结束位置。

2. 字符集

字符集用于匹配一系列字符。例如,[a-z] 匹配任何小写字母。

3. 分组和引用

分组允许你保存匹配的子串,并可以在后面的表达式中引用它们。例如,(abc) 将匹配 abc 并将匹配的子串存储在捕获组中。

图片替换示例

<img src="http://example.com/image1.jpg" alt="Image 1">
<img src="http://example.com/image2.jpg" alt="Image 2">
<img src="http://example.com/image3.jpg" alt="Image 3">
<?php
$text = <<<HTML
<img src="http://example.com/image1.jpg" alt="Image 1">
<img src="http://example.com/image2.jpg" alt="Image 2">
<img src="http://example.com/image3.jpg" alt="Image 3">
HTML;

$pattern = '/<img\s+src="([^"]+)"\s+alt="([^"]+)">/i';
$replacement = '<img src="http://newexample.com/$1" alt="$2">';

$text = preg_replace($pattern, $replacement, $text);

echo $text;
?>

解释:

  • $pattern 是我们要匹配的HTML图片标签的模式。/i 是一个标志,表示我们想要进行不区分大小写的匹配。
  • preg_replace 函数用于替换文本中匹配的字符串。它接受三个参数:要匹配的模式、替换的字符串和原始文本。
  • $replacement 是用于替换匹配字符串的字符串。我们使用 $1$2 来引用第一个和第二个捕获组中的内容,即图片的原始URL和alt属性。

总结