用于字符串替换的正则表达式无法正常工作

时间:2015-08-20 16:51:32

标签: php regex

我试图在php中的preg_replace操作中理解正则表达式背后的逻辑,但我不明白。

我试图截取width="560"之类的字符串,并将其替换为width="100%"

整数值自然不是常数,所以我不能使用简单的str_replace调用。

我尝试使用preg_replace("/(\d)/", "100%", $input_lines); $input_lines = 'width="560"';

但我明白了:width="100%100%100%"

我遗漏了一些关于递归的东西。 任何线索?

EDIT 在社区回答之后,我必须在我的帖子中添加一些规范。

我要做的是使用youtube嵌入代码,如

<iframe width="560" height="315" src="https://www.youtube.com/embed/_qvp9a1x2UM" frameborder="0" allowfullscreen></iframe>

并用100%替换560,用计算值替换315

2 个答案:

答案 0 :(得分:3)

尝试foofoo(some_list, *inputs) 一次或多次搜索模式。

(\d+)

根据您的更新,您的正则表达式应为:

+

Demo

答案 1 :(得分:0)

我不是php专家,但是当谈到正则表达式时:

preg_replace("/(\d*)/", "100%", $input_lines);

选择组中的所有数字。否则会创建3个不同的,因此用您的字符串替换。