Maison > développement back-end > Golang > Golang supprime les balises html

Golang supprime les balises html

王林
Libérer: 2023-05-13 09:16:07
original
932 Les gens l'ont consulté
<p>Avec la popularité d'Internet, le langage de balisage HTML est devenu l'un des langages couramment utilisés dans la programmation réseau. Lors de la création de pages Web, nous utiliserons HTML pour créer des pages Web et obtiendrons divers effets visuels et fonctions en insérant différentes balises et éléments dans HTML. </p> <p>Cependant, dans certains scénarios où le contenu HTML doit être traité, nous devons supprimer les balises HTML et conserver uniquement le contenu en texte brut, comme les moteurs de recherche explorant les informations des pages Web, traitant les données des robots, etc. Cet article explique comment supprimer les balises HTML dans Golang. </p> <p>1. Utiliser des expressions régulières</p> <p>Le package regexp dans Golang peut utiliser des expressions régulières pour faire correspondre et traiter les chaînes. Nous pouvons utiliser des expressions régulières pour faire correspondre les balises HTML et remplacer les balises par des chaînes vides. Voici un exemple de programme : </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>package main import ( "fmt" "regexp" ) func main() { text := "<p>Hello, World!</p>" re := regexp.MustCompile(`<[^>]*>`) result := re.ReplaceAllString(text, "") fmt.Println(result) }</pre><div class="contentsignin">Copier après la connexion</div></div><p>Sortie : </p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Hello, World!</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><p>Ce programme utilise l'expression régulière <code><[^>]*></code> pour faire correspondre toutes les balises HTML où <code>&lt ;</ code> est le symbole "<", <code>[^>]*</code> représente n'importe quel caractère sans le symbole ">", <code>></code> est le symbole "> " , afin qu'il puisse correspondre à l'intégralité de la balise HTML. <code><[^>]*></code>来匹配所有的HTML标签,其中<code><</code>是“<”符号,<code>[^>]*</code>表示不含“>”符号的任意字符,<code>></code>是“>”符号,这样就可以匹配整个HTML标签了。</p><p>二、使用第三方库</p><p>golang拥有许多非常好用的第三方库,这些库可以帮助我们快速开发和部署应用程序。在去除HTML标签这个任务中,我们可以使用一个名为<code>github.com/microcosm-cc/bluemonday</code>的第三方库。</p><p>下面是一个示例程序:</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>package main import ( "fmt" "github.com/microcosm-cc/bluemonday" ) func main() { text := "<p>Hello, World!</p>" policy := bluemonday.StrictPolicy() result := policy.Sanitize(text) fmt.Println(result) }</pre><div class="contentsignin">Copier après la connexion</div></div><p>输出:</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Hello, World!</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><p>这个程序使用了<code>github.com/microcosm-cc/bluemonday</code>库来去除HTML标签,这个库提供了非常丰富的API和默认策略,可以帮助我们快速实现HTML标签去除。</p><p>三、使用goquery库</p><p>golang还有一个非常好用的第三方库<code>github.com/PuerkitoBio/goquery</code>,这个库用于解析HTML和XML文档,我们可以使用这个库来去除HTML标签。下面是一个示例程序:</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>package main import ( "fmt" "strings" "github.com/PuerkitoBio/goquery" ) func main() { text := "<p>Hello, World!</p>" r := strings.NewReader(text) doc, _ := goquery.NewDocumentFromReader(r) result := doc.Text() fmt.Println(result) }</pre><div class="contentsignin">Copier après la connexion</div></div><p>输出:</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Hello, World!</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><p>这个程序使用了<code>github.com/PuerkitoBio/goquery</code>库来解析HTML文档,并提取出其中的纯文本内容,这样就可以去除HTML标签了。</p> <p>四、注意事项</p> <p>无论使用什么方法去除HTML标签,都有一些注意事项需要我们遵循:</p> <ol> <li>在使用正则表达式匹配HTML标签时,必须保证正则表达式覆盖到了所有标签的情况,否则会出现误判或漏掉标签的情况;</li> <li>如果网页中的HTML标签不规范,可能会导致标签无法匹配或产生不可预料的结果;</li> <li>一些网页中,可能会包含一些特殊字符(如­)、CSS样式(如style)等,这些内容也需要注意处理。</li> </ol> <p>五、总结</p> <p>在golang中去除HTML标签有很多方法,我们可以使用正则表达式、第三方库等等。经过对比和实验,我们建议使用<code>github.com/microcosm-cc/bluemonday</code>和<code>github.com/PuerkitoBio/goquery</code></p>2. Utiliser des bibliothèques tierces 🎜🎜golang dispose de nombreuses bibliothèques tierces très utiles qui peuvent nous aider à développer et déployer rapidement des applications. Pour supprimer les balises HTML, nous pouvons utiliser une bibliothèque tierce nommée <code>github.com/microcosm-cc/bluemonday</code>. 🎜🎜Ce qui suit est un exemple de programme : 🎜rrreee🎜Sortie : 🎜rrreee🎜Ce programme utilise la bibliothèque <code>github.com/microcosm-cc/bluemonday</code> pour supprimer les balises HTML. Cette bibliothèque fournit une API très riche. et des stratégies par défaut, qui peuvent nous aider à supprimer rapidement les balises HTML. 🎜🎜3. Utilisez la bibliothèque goquery 🎜🎜golang dispose également d'une bibliothèque tierce très facile à utiliser <code>github.com/PuekitoBio/goquery</code>. Cette bibliothèque est utilisée pour analyser les documents HTML et XML. peut utiliser cette bibliothèque pour supprimer les balises HTML. Voici un exemple de programme : 🎜rrreee🎜Sortie : 🎜rrreee🎜Ce programme utilise la bibliothèque <code>github.com/PuerkitoBio/goquery</code> pour analyser le document HTML et extraire le contenu en texte brut, de sorte que HTML supprimé balises. 🎜🎜4. Précautions🎜🎜Quelle que soit la méthode utilisée pour supprimer les balises HTML, nous devons suivre certaines précautions : 🎜<ol> <li>Lorsque vous utilisez des expressions régulières pour faire correspondre les balises HTML, vous devez vous assurer que les balises HTML régulières L'expression couvre toutes les balises, sinon il y aura des erreurs d'appréciation ou des balises manquantes ;</li> <li>Si les balises HTML de la page Web ne sont pas standardisées, elles risquent de ne pas correspondre ou de produire des résultats imprévisibles ;</li> Certaines pages Web peuvent contenir des caractères spéciaux (tels que ), des styles CSS (tels que le style), etc. Ces contenus doivent également être traités avec attention. </ol>🎜5. Résumé🎜🎜Il existe de nombreuses façons de supprimer les balises HTML dans Golang. Nous pouvons utiliser des expressions régulières, des bibliothèques tierces, etc. Après comparaison et expériences, nous vous recommandons d'utiliser les bibliothèques <code>github.com/microcosm-cc/bluemonday</code> et <code>github.com/PuerkitoBio/goquery</code> pour supprimer les balises HTML. Les deux bibliothèques sont très simples. à utiliser et a une bonne compatibilité et stabilité. Bien entendu, pour certains scénarios plus simples, des expressions régulières peuvent également être utilisées. Lorsque nous utilisons une méthode, nous devons prêter attention à certains détails et précautions pour garantir le fonctionnement normal du programme. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal