一个带有多个参数和替换的标记的正则表达式

时间:2011-05-29 10:06:50

标签: php regex

[tag]foobar[/tag]
[tag parameter1]foobar[/tag]
[tag parameter2="whatever"]foobar[/tag]
[tag parameter1 parameter2="whatever"]foobar[/tag]
[tag parameter2="whatever" parameter1]foobar[/tag]

我可以在一个表达式中匹配所有这些组合吗?理想地适用于其他参数。我尝试了一些东西,但没有任何作用。现在我要匹配每一个组合,但我想,那不是最好的。

第二件事,我想替换参数。

parameter1class="tagclass"

parameter2="input"id="input"

是否可以一步完成所有操作?

谢谢和问候, 亚历

1 个答案:

答案 0 :(得分:2)

WordPress有代码可以做到:

http://core.trac.wordpress.org/browser/trunk/wp-includes/shortcodes.php

它不能100%工作,但它完成了工作。特别参见shortcode_parse_atts()函数(我编写的第225行,但在更高版本的WP中可能会有所变化)。