Maison > développement back-end > tutoriel php > Explication détaillée de la régularité PHP et de la collecte de données

Explication détaillée de la régularité PHP et de la collecte de données

小云云
Libérer: 2023-03-21 21:42:01
original
3032 Les gens l'ont consulté
  • Les expressions régulières PHP sont principalement utilisées pour les opérations de segmentation de modèles, de correspondance, de recherche et de remplacement de chaînes. L'utilisation d'expressions régulières peut ne pas être efficace dans certains environnements simples,
    donc la manière de mieux utiliser les expressions régulières PHP doit être considérée de manière globale.
    Définition de l'expression régulière PHP :
    Une règle grammaticale utilisée pour décrire la disposition des caractères et les modèles de correspondance.
    Fonctions régulières en PHP :
    Il existe deux ensembles de fonctions régulières en PHP, qui ont toutes deux des fonctions similaires, à savoir :
    Un ensemble est fourni par la bibliothèque PCRE (Perl Compatible Regular Expression). Fonctions nommées avec le préfixe "preg_" ;
    Un ensemble de fonctions fournies par les extensions POSIX (Portable Operating System Interface of Unix). Utilisez les fonctions nommées avec le préfixe "ereg_" ;
    (l'utilisation de la bibliothèque de fonctions régulières POSIX n'est plus recommandée depuis PHP 5.3 et sera supprimée de PHP 6)
    Puisque la bibliothèque de fonctions régulières POSIX est sur le point d'être publiée, history Stage, et les formes PCRE et perl sont similaires, ce qui est plus pratique pour nous de basculer entre perl et php, nous nous concentrons donc ici sur l'utilisation de la régularité PCRE.
    PCRE Regular Expression
    PCRE signifie Perl Compatible Regular Expression, ce qui signifie expression régulière compatible Perl.
    Dans PCRE, l'expression de modèle (c'est-à-dire l'expression régulière) est généralement entourée de deux barres obliques inverses "/", telles que "/apple/".
    Les concepts importants dans les expressions régulières sont : les métacaractères, les échappements, les unités de modèle (répétitions), les antonymes, les références et les assertions. Ces concepts peuvent être facilement compris et maîtrisés en JavaScript.
    preg_filter — Recherche et remplacement d'expressions régulières
    preg_filter("regular", "replacement", "target");
    preg_grep ( string $pattern , array $input [, int $flags = 0 ] )
    preg_match — effectue une correspondance d'expression régulière
    preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
    preg_match_all — correspondance globale d'expression régulière
    preg_replace — effectue une recherche d'expression régulière et remplace
    preg_split — sépare les chaînes par une expression régulière
    Méta-caractères couramment utilisés :
    Description du métacaractère
    A Correspond à l'atome au niveau début de la chaîne
    Z Correspond à l'atome à la fin de la chaîne
    b Correspond à la limite du mot /bis/ Correspond à la chaîne dont la tête est est /isb/ Correspond à la queue est est Chaîne de /bisb/ Délimité
    B Correspond à n'importe quel caractère sauf les limites des mots /Bis/ Correspond à "is" dans le mot "This"
    d Correspond à un nombre ; équivalent à [0-9]
    D Correspond à n'importe quel caractère sauf les nombres équivalents ; à [^0-9]
    w Correspond à une lettre, un chiffre ou un trait de soulignement anglais équivalent à [0-9a-zA-Z_]
    W Correspond à n'importe quel caractère à l'exception des lettres, chiffres et traits de soulignement anglais équivalents à [^ ; 0-9a-zA-Z_]
    s Correspond à un caractère vide ; équivalent à [ftv]
    S Correspond à l'exception des caractères vides Tout caractère équivalent à [^ftv]
    f Correspond à un caractère de saut de page équivalent à x0c ou cL
    Correspond à un caractère de nouvelle ligne ; équivalent à x0a ou cJ
    Correspond à un caractère de retour chariot équivalent Correspond à un caractère de tabulation dans x0d ou cM
    t équivalent à x09 ou cl
    v Correspond à une verticale ; caractère de tabulation ; équivalent à x0b ou ck
    oNN Correspond à un nombre octal
    xNN Correspond à un nombre hexadécimal
    cC correspond à un caractère de contrôle
    Modificateurs de motif : Le modificateur de motif
    est particulièrement utilisé pour ignorer la casse. et faire correspondre plusieurs lignes. Maîtriser ce modificateur peut souvent résoudre de nombreux problèmes que nous rencontrons.
    i - Peut faire correspondre les lettres majuscules et minuscules
    M - Traitez la chaîne comme plusieurs lignes
    S - Traitez la chaîne comme une seule ligne et traitez les nouvelles lignes comme des caractères ordinaires, en faisant correspondre "."
    X - Les espaces vides dans le motif sont ignorés
    U - Correspond à la chaîne la plus proche
    e - Utilisez la chaîne remplacée comme expression
    format : /apple/i correspond à "apple" ou "Apple" etc., en ignorant la casse. /i
    Correspond au caractère
    Description
    Marque le caractère suivant comme caractère spécial, texte, référence arrière ou caractère d'échappement octal. Par exemple, « n » correspond au caractère « n ». "n" correspond à un caractère de nouvelle ligne. La séquence "\" correspond à "", "(" correspond à "(".
    ^ Correspond au début de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, ^ correspondra également à "n" ou "r " Correspondances de localisation.
    $ Correspond à la fin de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, $ correspond également à la position avant "n" ou "r".
    * Correspond au caractère ou à la sous-expression précédent zéro ou plusieurs fois. Par exemple, zo* correspond à « z » et « zoo ». * Équivalent à {0,}.
    + Correspond au caractère ou à la sous-expression précédent une ou plusieurs fois. Par exemple, « zo+ » correspond à « zo » et « zoo » mais pas à « z ». + Équivalent à {1,}.
     ? Correspond au caractère ou à la sous-expression précédent zéro ou une fois. Par exemple, « faire(s) ? » correspond à « faire » ou « faire » dans « fait ». ? Équivalent à {0,1}.
    {n} n est un entier non négatif. Correspond exactement n fois. Par exemple, "o{2}" ne correspond pas au "o" dans "Bob", mais correspond aux deux "o" dans "food".
    {n,} n est un entier non négatif. Faites correspondre au moins n fois. Par exemple, "o{2,}" ne correspond pas au "o" de "Bob" mais correspond à tous les o de "foooood". "o{1,}" équivaut à "o+". "o{0,}" équivaut à "o*".
    {n,m} M et n sont des entiers non négatifs, où n <= m. Faites correspondre au moins n fois et au plus m fois. Par exemple, "o{1,3}" correspond aux trois premiers o de "fooooood". « o{0,1} » est équivalent à « o ? ». Remarque : Vous ne pouvez pas insérer d'espaces entre les virgules et les chiffres.
     ? Lorsque ce caractère suit immédiatement un autre qualificatif (*, +, ?, {n}, {n,}, {n,m}), le modèle correspondant est "non gourmand". Le modèle « non gourmand » correspond à la chaîne la plus courte possible recherchée, tandis que le modèle « gourmand » par défaut correspond à la chaîne la plus longue possible recherchée. Par exemple, dans la chaîne "oooo", "o+?" ne correspond qu'à un seul "o", tandis que "o+" correspond à tous les "o".
    . Correspond à n'importe quel caractère sauf "n". Pour faire correspondre n'importe quel caractère incluant "n", utilisez un modèle tel que "[sS]".
    [] Correspond à n'importe qui dans []
    [^] Correspond à n'importe qui qui n'est pas dans []
    1 Qu'est-ce que la collecte de données
    Il y a quelques années, à l'exception de quelques grands portails, en gros, ils. sont des sites Web personnels. Les informations sont dispersées et il n'y a pas beaucoup de contenu.
    Dans quelques années, il y aura de plus en plus de sites Web commerciaux, et l'information doit être concentrée en grande quantité. Même s'il y a suffisamment de ressources financières pour embaucher un grand nombre de rédacteurs,
    ce n'est peut-être pas le cas. capable de répondre aux ressources d'information en constante évolution.
    La collecte d'informations est devenue une technologie privilégiée par tous les opérateurs de sites Web.
    2. L'idée de la collecte de données :
    L'idée du programme de collecte est très simple et peut être grossièrement divisée en les étapes suivantes :
    1. Obtenir le code source du fichier distant (file_get_contents ou utilisez fopen ou utilisez fsocket pour implémenter le protocole http get, ou l'extension curl de PHP ou d'autres classes open source tierces de PHP)
    Remarque : il est préférable de ne pas utiliser file_get_contents et fopen, vous rencontrerez des problèmes que vous pouvez' N'imaginez pas. Utilisez fsocket pour implémenter le protocole http. Désormais, la plupart des sites Web utilisent la technologie anti-collecte et utilisent la technologie d'extraction d'informations lors de la collecte de contenu.
    2. Analysez le code pour obtenir ce que vous voulez (utilisez la correspondance régulière ici).
    3. Téléchargez et stockez le contenu en fonction du contenu obtenu.
    4. Affichez les données en fonction de la mise en page de votre page Web
    3. Partagez votre expérience personnelle de collecte :
    1. Ne collectez pas de sites protégés contre les hotlinks. En fait, vous pouvez falsifier l'origine, mais tel. les sites collectent Le coût est trop élevé
    2. Pour les stations qui collectent les données le plus rapidement possible, il est préférable de les collecter localement
    3. Lors de la collecte, il arrive souvent que vous puissiez stocker une partie des données dans le base de données d'abord, puis passez à l'étape suivante du traitement.
    4. Vous devez gérer les erreurs lors de la collecte. Je l'ignore généralement si la collecte échoue trois fois.
    Dans le passé, j'étais souvent coincé à choisir un élément de contenu simplement parce que je ne pouvais pas le récupérer.
    5. Vous devez faire preuve de discernement avant d'entrer dans la base de données, vérifier la légalité du contenu et filtrer les chaînes inutiles.
    Quatrième : Partagez une adresse de lien : Test en ligne d'expressions régulières
    http://tool.chinaz.com/regex
    Cinq : Partagez quelques expressions régulières PHP couramment utilisées
    Expressions régulières qui correspondent aux caractères chinois : [u4e00-u9fa5]
    Correspond aux caractères à deux octets (y compris les caractères chinois) : [^x00-xff]
    Correspond à l'expression régulière des balises HTML : /<(.*)>.*< ;/ >|<(.*) />/
    Expression régulière correspondant à l'adresse IP /(d+).(d+).(d+).(d+)/g
    Adresse e-mail correspondante Expression régulière : w+( [-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
    URL correspondant à l'expression régulière : http://( [w-]+.)+[ w-]+(/[w- ./?%&=]*) ?
    Lien de l'image dans les informations correspondantes : /(s|S)(r|R)( c|C)*=*('| ")?(w||/|.)+('|"| *|>)?/
    Utilisez des expressions régulières pour extraire les noms de fichiers des adresses URL : / (.*/)([^.]+ ).*/ig
    Vérification du numéro de téléphone en Chine/((d{3,4})|d{3,4}-)?d{7,8}( -d{3})*/
    Vérification du code postal de Chine/d{6}/
    Vérification de l'e-mail/w+([-+.]w+)*@w+([-.]w+)*.w+ ([-.]w+)*/
    Vérification de la carte d'identité/d{18}|d{15}/
    Vérification des nombres couramment utilisée /d{n}/ n est la longueur spécifiée /d{n,m}/ La plage de longueurs de n à m
    Vérification des caractères illégaux
    Faire correspondre les caractères illégaux tels que : < / ' |
    Expression régulière [^<>&/|']+
    Vérification de la date
    La forme correspondante est : 20030718,030718
    Plage : 1900--2099
    Expression régulière ((( (19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}

Recommandations associées :

Exemple de méthode régulière PHP pour déterminer si une chaîne contient des caractères chinois

PHP Résumé des expressions régulières

Méthode de traitement des expressions régulières 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!

É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