Co o czymś takim, zważywszy może chcesz ponownie go używać z innymi href
s:
$str = '<a href="link.html">text</a>';
$result = preg_replace('#(<a[^>]*>).*?(</a>)#', '$1$2', $str);
var_dump($result);
Który będzie ci:
string '<a href="link.html"></a>' (length=24)
(Rozważam, że popełniłeś literówkę w OP?)
Jeśli nie trzeba dopasować dowolny inny href, można użyć coś takiego:
$str = '<a href="link.html">text</a>';
$result = preg_replace('#(<a href="link.html">).*?(</a>)#', '$1$2', $str);
var_dump($result);
Które otrzymają również Ty:
string '<a href="link.html"></a>' (length=24)
jako sidenote: w przypadku bardziej złożonego kodu HTML nie należy używać wyrażeń regularnych: działają one dobrze w tego rodzaju prostych sytuacjach, ale w przypadku rzeczywistej części HTML nie pomagają w l: HTML nie jest dość "regularny" "wystarczająco", aby można go było analizować za pomocą wyrażeń regularnych.
Podczas gdy to działa, zazwyczaj nie chcesz parsować HTML za pomocą wyrażeń regularnych. Odpowiedź Karima może być lepsza. – Konerak