Maison  >  Article  >  développement back-end  >  Explication détaillée de PHP utilisant des expressions régulières pour obtenir l'URL dans la chaîne

Explication détaillée de PHP utilisant des expressions régulières pour obtenir l'URL dans la chaîne

墨辰丷
墨辰丷original
2018-05-29 09:59:576318parcourir

Le client transmet une chaîne et doit faire correspondre toutes les URL de la chaîne. Comment PHP peut-il y parvenir ? Cet article présente comment PHP obtient l'URL (lien du site Web) dans une chaîne. Il utilise principalement la fonction d'expression régulière PHP preg_match_all. Veuillez voir ci-dessous la méthode d'implémentation spécifique

$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考'; 
 preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2); 
print_r($array2);


<.>Le résultat en cours d'exécution est :


( 
  [0] => Array 
    ( 
      [0] => http://www.manongjc.com 
    ) 
)


La fonction preg_match_all est principalement utilisée ici. L'utilisation spécifique de cette fonction est la suivante. suit :

preg_match_all — effectue une correspondance d'expression régulière globale

Syntaxe :


int preg_match_all ( string pattern, string subject, array matches [, int flags] )


Rechercher dans le sujet Tout le contenu qui correspond à l'expression régulière donnée par le modèle et les résultats sont placés dans les correspondances dans l'ordre spécifié par les indicateurs.

Une fois la première correspondance trouvée, les recherches suivantes commencent à la fin de la correspondance précédente.

Portez une attention particulière à PREG_PATTERN_ORDER et PREG_SET_ORDER

les drapeaux peuvent être une combinaison des drapeaux suivants (notez que cela n'a aucun sens d'utiliser PREG_PATTERN_ORDER et PREG_SET_ORDER ensemble) :

Si vous utilisez PREG_PATTERN_ORDER

Triez les résultats de sorte que $matches[0] soit un tableau de toutes les correspondances de modèles, $matches[1] soit un tableau de chaînes correspondant au sous-modèle dans la première parenthèse, et ainsi de suite. (C'est-à-dire que $matches[0] [0] est le deuxième élément de toutes les correspondances de modèles, $matches[0] [1] est le deuxième élément de toutes les correspondances de modèles, $matches[1] [0] est la correspondance de chaque élément. Le premier élément entre parenthèses, $matches[1] [0] correspond au deuxième élément de chaque parenthèse)


<?php 
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><p align=left>this is a test</p>",$out, PREG_PATTERN_ORDER);
/* http://www.manongjc.com/article/1591.html */
print $out[0][0].", ".$out[0][1]."\n"; 
print $out[1][0].", ".$out[1][1]."\n"; 
?>


Résultat de sortie :


<b>example: </b>, <p align=left>this is a test</p> 
example: , this is a test




Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

PHPExpression régulièreExemples de fonctions de correspondance, de remplacement et de segmentation

PHPExpression régulièreExemple d'analyse de la fonction de remplacement et de segmentation correspondante

Expression régulière déclaration Explication détaillée des étapes d'annotation

Les expressions régulières les plus couramment utilisées en PHP

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!

Déclaration:
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