diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 49daea8580467c542238137fb6f3e2627b74aaae..e73dcbe85c0320ca02d7fe151aa2aaac902f2b73 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -2450,29 +2450,12 @@ function tags2dcsubject($tags) {
  *     - Tableau de résultats, si tableau en entrée.
  **/
 function extraire_balise($texte, $tag = 'a') {
+	$balises = extraire_balises($texte, $tag);
 	if (is_array($texte)) {
-		array_walk(
-			$texte,
-			function (&$a, $key, $t) {
-				$a = extraire_balise($a, $t);
-			},
-			$tag
-		);
-
-		return $texte;
+		return array_map(function(array $a) {return (empty($a) ? '' : reset($a));}, $balises);
 	}
 
-	if (
-		preg_match(
-			",<$tag\b[^>]*(/>|>.*</$tag\b[^>]*>|>),UimsS",
-			$texte,
-			$regs
-		)
-	) {
-		return $regs[0];
-	}
-	
-	return '';
+	return (empty($balises) ? '' : reset($balises));
 }
 
 /**