<!DOCTYPE html>
<html>
<head>
<title>内容</title>
</head>
<body>
中文
<p>内容<i>内容</i></p>
</body>
</html>
Remplacez le contenu de la balise par
<!DOCTYPE html>
<html>
<head>
<title>{{#内容#}}</title>
</head>
<body>
{{#中文#}}
<p>{{#内容#}}<i>{{#内容#}}</i></p>
</body>
</html>
Comment écrire la solution régulière ?
Premièrement, si vous avez appris les principes de la compilation, vous saurez que les expressions régulières ne sont pas capables de traiter des structures de données imbriquées. En d'autres termes, si vous souhaitez satisfaire à l'exigence de [sélectionner la première balise i du p imbriqué dans le corps] via une expression régulière, cela n'est en principe pas réalisable.
Deuxièmement, vous avez affaire à un texte DOM structuré, vous pouvez donc utiliser la méthode parseHTML de jQuery pour y parvenir. L'objet obtenu après avoir passé l'analyse jQuery peut utiliser $ pour sélectionner davantage des nœuds tels que p ou i. Cela peut résoudre votre problème de remplacement de texte de manière simple et efficace.
Si vous êtes sur le serveur Node, remplacez simplement jQuery par cheerio.
Si vous souhaitez uniquement remplacer dans le texte de test actuel que vous avez donné, car la situation est relativement simple, il vous suffit d'écrire une correspondance régulière comme ([u4e00-u9fa5]+) et de la remplacer par {{#$1#}}