如何使用单个字符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代码来做到这一点,从而避免使用循环语句。
提前谢谢。
正
则表达式或正则表达式应该可以很好地解决问题。
preg_replace('( alt="image [0-9]+"></a>)', '>', $text);
- 在 RegEx 中,字符组的构造
[]
意味着组中指定的任何字符都可以作为通配符进行匹配。 - 在组中使用破折号
-
意味着字符组的范围从a
到z
在我们的例子中0-9
. - 在字符组末尾使用星号
*
意味着该组可以重复 0 次或多次,从而允许我们定义由多个数字组成的数字。 - 使用加号而不是星号意味着该组可以重复 1 次或更多次(这可能更适合这里,因为您要匹配数字而不是空插槽)。