Regex Whitespace optionnel: ignorer les espaces dans les valeurs d'attribut
Dans la programmation, il existe des scénarios où vous devez gérer les instances où les chaînes contiennent des espaces blancs facultatifs. Cela peut être difficile lors de l'écriture d'expressions régulières pour extraire les données avec précision. preg_match ('# & lt; a href = & quot; (. *?) & quot; title = & quot; (. *?) & quot; & gt; & lt; img alt = & quot; (. *?) & quot; src = & quot; (. *?) & quot; [\ s *] width = & quot; 150 & quot; [\ s *] height = & quot; (. *?) & quot; & gt; & lt; / a & gt; # ', $ data, $ imageMatch); $ image = $ iMageMatch [4];
Ce code extrait l'attribut SRC d'une image à partir du balisage html. Cependant, il ne gère pas les cas où il n'y a pas d'espace entre certains attributs, tels que:
# Get Image data preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch); $image = $imagematch[4];& lt; a href = & quot; / wiki / file: sky1.png & quot; title = & quot; fichier: sky1.png & quot; & gt; & lt; img alt = & quot; sky1.png & quot; src = & quot; http: //media-mcw.cursecdn.com/thumb/5/56/sky1.png/150px-sky1.png" width = & quot; 150 & quot; height = & quot; 84 & quot; & gt; & lt; / a & gt;
ou
<a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>
& lt; a href = & quot; / wiki / file: tallgrass.gif & quot; title = & quot; fichier: tallgrass.gif & quot; & gt; & lt; img alt = & quot; tallgrass.gif & quot; src = & quot; http: //media-mcw.cursecdn.com/3/34/tallgrass.gif" width = & quot; 150 & quot; height = & quot; 150 & quot; & gt; & lt; / a & gt; pour résoudre ce problème, nous pouvons utiliser le regex de l'espace blanc facultatif. Cela nous permet d'ignorer les espaces entre les caractères. Voici comment:
<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>
dans cette expression régulière mise à jour:
# Get Image data preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch); $image = $imagematch[4];\ s? avant = signifie qu'un espace est autorisé mais facultatif.
\ s * Une fois que la valeur d'attribut permet un espace facultatif après le nom et la valeur de l'attribut.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3