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

时间:2012-07-01 21:28:51

标签: php string replace wildcard

如何使用单个字符的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代码来做到这一点,从而避免使用循环语句。

提前致谢。

1 个答案:

答案 0 :(得分:3)

正则表达式或RegEx可以很好地完成这项工作。

preg_replace('( alt="image [0-9]+"></a>)', '>', $text);
  • 在RegEx中,字符组[]的构造意味着组中指定的任何字符都可以匹配为通配符。
  • 在群组中使用短划线-表示在我们的案例a中,字符组从z跨越0-9
  • 在字符组末尾使用星号*表示该组可以重复0次或更多次,以便我们定义由多个数字组成的数字。
  • 使用加号而不是星号表示该组可以重复1次或更多次(这可能更适合此处,因为您要匹配的数字不是空插槽)。