0

如何使用单个字符 PHP 通配符进行字符串替换?

我需要在以下代码行中进行字符串替换:

<img src="http://mydomain.com/image-1.jpg" alt="image 1"></a>
<img src="http://mydomain.com/image-2.jpg" alt="image 2"></a>
<img src="http://mydomain.com/image-3.jpg" alt="image 3"></a>
<img src="http://mydomain.com/image-4.jpg" alt="image 4"></a>

我想在上述所有行中替换以下字符串:

 alt="image *"></a>

其中 * 通配符代表一个数字,带有以下大于号:

>

产生以下结果:

<img src="http://mydomain.com/image-1.jpg">
<img src="http://mydomain.com/image-2.jpg">
<img src="http://mydomain.com/image-3.jpg">
<img src="http://mydomain.com/image-4.jpg">

如果可能的话,我想使用一行 PHP 代码来完成这项工作,从而避免使用循环语句。

提前致谢。

4

1 回答 1

3

正则表达式或RegEx应该可以很好地解决问题。

preg_replace('( alt="image [0-9]+"></a>)', '>', $text);
  • 在 RegEx 中,字符组的构造[]意味着组中指定的任何字符都可以作为通配符进行匹配。
  • 在组内使用破折号-意味着字符组在我们的例子中跨越从a到。z0-9
  • 在字符组末尾使用星号*意味着该组可以重复 0 次或更多次,从而允许我们定义由多个数字组成的数字。
  • 使用加号而不是星号意味着该组可以重复 1 次或多次(这可能更适合这里,因为您想匹配一个数字而不是空槽)。
于 2012-07-01T21:40:06.907 回答