PHP:使用正则表达式转换自定义标记中的链接

时间:2010-03-02 14:17:31

标签: php regex tags

我正在尝试使用正则表达式将标准HTML代码转换为自定义格式(数据导出所需)。

例如,在以下代码中:

<a href="toto.php">Toto
</a> bwahaha
<td width="49%" bgcolor="#FF9E39" style="padding-left: 10px; padding-top: 3px; padding-bottom: 3px; border-bottom: 5px solid rgb(255, 255, 255);" class="texteblanc">
<a href="nuit-orientation.php" class="texteblanc">[strong]Nuit de l'orientation[/strong]</a>
</td>

我想以下列格式提取两个链接:

[a:toto.php]Toto[/a]
[a:nuit-orientation.php][strong]Nuit de l'orientation[/strong][/a]

当然,我希望链接在现有的HTML代码中保留。

所以,我尝试了以下代码:

$txt = preg_replace('/<a href="(([[:word:]]|[[:punct:]])+)"[^>]*>\n*(\r\n)*\r*(([[:print:]]|\r\n|\n)+)\n*(\r\n)*\r*<\/a>/i', '[a:${1}]${4}[/a]', $txt);

它有效但不是所有时间......

有人知道怎么做这样的事吗?

谢谢,

达明

1 个答案:

答案 0 :(得分:2)