Expressions régulières PHP : comment faire correspondre tous les titres et paragraphes en HTML

王林
Libérer: 2023-06-22 19:22:02
original
966 Les gens l'ont consulté
<p>Les balises </p> <p>HTML sont souvent utilisées dans les sites Web modernes. Ces balises contiennent divers éléments, tels que des titres, des paragraphes, etc. Si vous êtes un développeur PHP, vous avez peut-être rencontré le besoin d'extraire tous les titres et balises de paragraphe d'un fichier HTML pour une utilisation ultérieure. C'est là que les expressions régulières sont utiles. Cet article vous montrera comment utiliser les expressions régulières PHP pour faire correspondre tous les titres et paragraphes en HTML. </p> <p>Tout d'abord, nous devons savoir quelles sont les balises des titres et des paragraphes en HTML. Les balises HTML contiennent une variété d'éléments de titre et de paragraphe, dont les plus courants sont h1, h2, h3 et d'autres balises utilisées pour représenter les titres, tandis que les balises p sont utilisées pour représenter les paragraphes. Dans cet article, nous nous concentrerons uniquement sur ces balises les plus couramment utilisées. </p> <p>Voyons maintenant comment utiliser les expressions régulières PHP pour faire correspondre les balises de titre et de paragraphe en HTML. Le code ci-dessous montre un simple script PHP qui lira un fichier HTML et fera correspondre tous les titres et paragraphes qu'il contient à l'aide d'expressions régulières : </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><?php // 读入 HTML 文件 $html = file_get_contents('example.html'); // 正则表达式匹配所有标题和段落 $pattern = '/<(hd|p)[^>]*>(.*?)</>/si'; preg_match_all($pattern, $html, $matches); // 显示所匹配的结果 print_r($matches[0]); ?></pre><div class="contentsignin">Copier après la connexion</div></div><p>Expressions régulières dans cet extrait de code <code>/<(hd| p)[^>]*>(.*?)</ >/si</code> peut faire les choses suivantes : <code>/<(hd|p)[^>]*>(.*?)</>/si</code> 可以做到以下几个事情:</p><ul><li><code><</code> 和 <code>></code> 元字符用于匹配 HTML 标记的起始和结束位置。</li><li><code>hd|p</code> 表示匹配所有标题(h1、h2、h3 等)和段落(p)标记。</li><li><code>[^>]*</code> 匹配标记中除了 <code>></code> 之外的所有字符,这是因为 <code>></code> 是标记起始位置的定界符。</li><li><code>(.*?)</code> 使用非贪婪匹配方式来匹配标记中间的文本。</li><li><code></></code> 表示匹配与起始标记相对应的结束标记。<code></code> 表示匹配前面指定的标记(即 <code>hd|p</code>)。</li></ul><p>在这个正则表达式中,我们使用了 <code>s</code> 和 <code>i</code> 两个模式修饰符。其中,<code>s</code> 用于开启“点号匹配模式”,使得 <code>.</code> 元字符匹配所有字符,包括换行符。而 <code>i</code><ul ><li>Le <code><</ Les métacaractères code> et <code>></code> sont utilisés pour faire correspondre le début et la fin des balises HTML. </li><li><code>hd|p</code> signifie faire correspondre toutes les balises de titre (h1, h2, h3, etc.) et de paragraphe (p). </li><li><code>[^>]*</code> correspond à tous les caractères de la balise sauf <code>></code> car <code>></code > est le délimiteur qui marque la position de départ. </li><li><code>(.*?)</code> Utilisez une correspondance non gourmande pour faire correspondre le texte au milieu de la balise. </li><li><code></ ></code> signifie faire correspondre la balise de fin correspondant à la balise de début. <code> </code> signifie correspondre à la balise spécifiée précédemment (c'est-à-dire <code>hd|p</code>). </li></ul></p>Dans cette expression régulière, nous utilisons les deux modificateurs de motif <code>s</code> et <code>i</code>. Parmi eux, <code>s</code> est utilisé pour activer le "mode de correspondance de points", de sorte que le métacaractère <code>.</code> corresponde à tous les caractères, y compris les nouvelles lignes. Et <code>i</code> est utilisé pour activer le "mode insensible à la casse" afin que la casse du nom de la balise n'affecte pas les résultats correspondants. <p></p>Une fois l'exécution du script terminée, il imprimera tous les titres et balises de paragraphe correspondants. Le résultat ressemblera à ceci : <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Array ( [0] => <h1>PHP 正则表达式</h1> [1] => <p>现代网站中常常会用到 HTML 标记,这些标记包含了各种元素,例如标题和段落等等。</p> [2] => <h2>标题2</h2> [3] => <p>段落2</p> [4] => <h3>标题3</h3> [5] => <p>段落3</p> )</pre><div class="contentsignin">Copier après la connexion</div></div>Avec ce résultat, nous pouvons voir que l'expression régulière PHP a réussi à faire correspondre toutes les balises de titre et de paragraphe dans le HTML. Cette expression régulière a d'autres scénarios d'application, tels que la correspondance de liens, d'images et de tableaux en HTML. J'espère que cet article vous a aidé à mieux comprendre l'utilisation des expressions régulières PHP pour faire correspondre des éléments en HTML. #🎜🎜#

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!

Étiquettes associées:
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