正则表达式入门

Nov 30, 2016 am 09:42 AM
入门 正则表达式

cjx最近在做爬虫的项目,急切需要在页面中抓取自己想要的内容,但是通过逻辑判断获取实在是过于复杂。很庆幸有正则表达式这个利器,很多事情都能够轻松办到,cjx之前也有了解一些关于正则表达式的知识。不过一直处于理解不彻底的状态,很难有效的自己编写一个满意的正则表达式出来。最近在网上发现有本Jeffrey E.F.Fried写的 精通正则表达式。 看了第一章后突然发现自己能写几个正则了,呵呵~~~ cjx突然有一种从屌丝升级成高富帅的感脚...下面对书上的第一章做了下总结~

行的起始和结束

或许最容易理解的元字符就是脱字符号^和美元符号$了,在检查一行文本时,^代表一行的开始,$代表结束。

读者最好养成按照字符来理解正则表达式的习惯。 例如,不要这样:

  ^cat 匹配以cat开头的行

而应该这样理解:

  ^cat 匹配的是以c作为一行的第一个字符,紧接一个a,紧接一个t的文本。

这两种理解的结果并无差异,但按照字符来解读更易于明白新遇到的正则表达式的内部逻辑。

 

匹配若干字符之一

如果我们需要搜索的是单词"grey",同时又不确定它是否写作"gray",就可以使用正则表达式结构体[...]。它容许使用者列出在某处期望的匹配的字符,通常被称作字符组。

所以,gr[ea]y的意思是:先找到g,跟着的是一个r,然后是一个a或者e,最后是一个y。

在字符组内部,字符租元字符 '-' 表示一个范围: 是完全一样的。我们还可以随心所欲地把字符范围与普通文本结合起来:

[0-9A-Z_!.?] 能够匹配一个数字、大写字母、下划线、惊态号、点号或者是问号。

 

排除型字符组

用[^...] 来取代 [...] 这个字符组就会匹配任何未列出的字符。例如:[^1-6] 匹配了除了1到6以外的任何字符。这个组中开头的^表示排除,所以这里列出的不是希望匹配的字符,而是不希望匹配的字符。

 

用点号匹配任意字符

元字符. 是用来匹配任意字符的字符组的简便写法。如果我们需要在表达式中使用一个"匹配任何字符" 的占位符,用点号就很方便。


匹配任意子表达式

元字符 | 是一个非常简洁的元字符,它的意思就"或" 。依靠它,我们能够把不同的子表达式组合一个总的表达式,而这个总的表达式又能够匹配任意的子表达式。

可选项元素

现在来看color和colour的匹配。它们的区别在于,后面的单词比前面的多一个u,我们可以用coloru?r 来解决这个问题。元字符? (也就是问号)代表可选项。把它加在一个字符的后面,就表示此处容许出现这个字符,不过它的出现并非匹配成功的必要条件。

其他量词:重复出现

+(加号)和*(星号)的作用与问号类似。元字符+ 表示之前紧邻的元素出现一次或多次,而* 表示之前紧邻的元素出现任意多次,或者不出现。
接下来看类似


这样的TAG,它表示一条高度为14的水平线。此外HR 与SIZE 之间必须有一个空格,而等号两边可以没有空格。于是若要找到网页中这样的HR,表达式既被写成
,有的时候HR的SIZE值往往是可变的,还有有可能不存在SIZE属性。那么表达式又可以被改写成。哇哦,真是太神奇了。

括号及反向引用

到目前为止,我们已经见过括号的两种用途:1.限制多选项的范围;2.将若干字符组合为一个单元,受问号或星号之类量词作用。现在我要介绍括号的另外一种用途即反向引用,虽然它在egrep中并不常见(不过流行的GNU版本确实支持这一功能),但在其他工具软件中很常见。
在支持反向引用的工具软件中,括号能够"记忆"其中的子表达式匹配的文本,不论这些文本是什么,元字符序列\1 都能够记住它们。

当然,在一个表达式中我们可以使用多个括号。再用\1、\2、\3等来表示第一、第二、第三组括号匹配的文本。括号是按照开括号'(' 从左到右的出现顺序来进行的,所以 ([a-z])([0-9])\1\2 中的\1代表[a-z] 匹配的内容,而\2 代表[0-9]匹配的内容。

神奇的转义
就是有的时候,我们可能需要匹配一些.+*?等符号,但是同时发现他们又是元符号。于是我们可以在它们的前面加上一个\ 转义符来实现这些特殊元符号的匹配。

一些有用的简记
\t    制表符
\n   换行符
\r    回车符
\s   任何空白字符,如空格、换行、tab缩进等所有的空白符
\S   除\s 之外的任何字符
\w  [a-zA-Z0-9] 在\w+ 中非常有用,可以用来匹配一个单词
\W  除\w 之外的任何字符 
\d   [0-9],即数字
\D   除\d 外的任何字符,即[^0-9]


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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Un didacticiel sur le modèle de diffusion qui vaut votre temps, de l'Université Purdue Un didacticiel sur le modèle de diffusion qui vaut votre temps, de l'Université Purdue Apr 07, 2024 am 09:01 AM

La diffusion permet non seulement de mieux imiter, mais aussi de « créer ». Le modèle de diffusion (DiffusionModel) est un modèle de génération d'images. Par rapport aux algorithmes bien connus tels que GAN et VAE dans le domaine de l’IA, le modèle de diffusion adopte une approche différente. Son idée principale est un processus consistant à ajouter d’abord du bruit à l’image, puis à la débruiter progressivement. Comment débruiter et restaurer l’image originale est la partie centrale de l’algorithme. L'algorithme final est capable de générer une image à partir d'une image bruitée aléatoirement. Ces dernières années, la croissance phénoménale de l’IA générative a permis de nombreuses applications passionnantes dans la génération de texte en image, la génération de vidéos, et bien plus encore. Le principe de base de ces outils génératifs est le concept de diffusion, un mécanisme d'échantillonnage spécial qui surmonte les limites des méthodes précédentes.

Générez du PPT en un seul clic ! Kimi : Que les « travailleurs migrants PPT » deviennent d'abord populaires Générez du PPT en un seul clic ! Kimi : Que les « travailleurs migrants PPT » deviennent d'abord populaires Aug 01, 2024 pm 03:28 PM

Kimi : En une seule phrase, un PPT est prêt en seulement dix secondes. PPT est tellement ennuyeux ! Pour tenir une réunion, vous devez avoir un PPT ; pour rédiger un rapport hebdomadaire, vous devez avoir un PPT ; pour solliciter des investissements, vous devez présenter un PPT ; même pour accuser quelqu'un de tricherie, vous devez envoyer un PPT ; L'université ressemble plus à une spécialisation PPT. Vous regardez le PPT en classe et faites le PPT après les cours. Peut-être que lorsque Dennis Austin a inventé le PPT il y a 37 ans, il ne s'attendait pas à ce qu'un jour le PPT devienne aussi répandu. Parler de notre dure expérience de création de PPT nous fait monter les larmes aux yeux. "Il m'a fallu trois mois pour réaliser un PPT de plus de 20 pages, et je l'ai révisé des dizaines de fois. J'avais envie de vomir quand j'ai vu le PPT." "À mon apogée, je faisais cinq PPT par jour, et même ma respiration." était PPT." Si vous avez une réunion impromptue, vous devriez le faire

Tous les prix CVPR 2024 annoncés ! Près de 10 000 personnes ont assisté à la conférence hors ligne et un chercheur chinois de Google a remporté le prix du meilleur article. Tous les prix CVPR 2024 annoncés ! Près de 10 000 personnes ont assisté à la conférence hors ligne et un chercheur chinois de Google a remporté le prix du meilleur article. Jun 20, 2024 pm 05:43 PM

Tôt le matin du 20 juin, heure de Pékin, CVPR2024, la plus grande conférence internationale sur la vision par ordinateur qui s'est tenue à Seattle, a officiellement annoncé le meilleur article et d'autres récompenses. Cette année, un total de 10 articles ont remporté des prix, dont 2 meilleurs articles et 2 meilleurs articles étudiants. De plus, il y a eu 2 nominations pour les meilleurs articles et 4 nominations pour les meilleurs articles étudiants. La conférence la plus importante dans le domaine de la vision par ordinateur (CV) est la CVPR, qui attire chaque année un grand nombre d'instituts de recherche et d'universités. Selon les statistiques, un total de 11 532 articles ont été soumis cette année, dont 2 719 ont été acceptés, avec un taux d'acceptation de 23,6 %. Selon l'analyse statistique des données CVPR2024 du Georgia Institute of Technology, du point de vue des sujets de recherche, le plus grand nombre d'articles est la synthèse et la génération d'images et de vidéos (Imageandvideosyn

Du bare metal au grand modèle avec 70 milliards de paramètres, voici un tutoriel et des scripts prêts à l'emploi Du bare metal au grand modèle avec 70 milliards de paramètres, voici un tutoriel et des scripts prêts à l'emploi Jul 24, 2024 pm 08:13 PM

Nous savons que le LLM est formé sur des clusters informatiques à grande échelle utilisant des données massives. Ce site a présenté de nombreuses méthodes et technologies utilisées pour aider et améliorer le processus de formation LLM. Aujourd'hui, ce que nous souhaitons partager est un article qui approfondit la technologie sous-jacente et présente comment transformer un ensemble de « bare metals » sans même un système d'exploitation en un cluster informatique pour la formation LLM. Cet article provient d'Imbue, une startup d'IA qui s'efforce d'atteindre une intelligence générale en comprenant comment les machines pensent. Bien sûr, transformer un tas de « bare metal » sans système d'exploitation en un cluster informatique pour la formation LLM n'est pas un processus facile, plein d'exploration et d'essais et d'erreurs, mais Imbue a finalement réussi à former un LLM avec 70 milliards de paramètres et dans. le processus s'accumule

A lire absolument pour les débutants en technique : Analyse des niveaux de difficulté du langage C et Python A lire absolument pour les débutants en technique : Analyse des niveaux de difficulté du langage C et Python Mar 22, 2024 am 10:21 AM

Titre : Une lecture incontournable pour les débutants en technique : Analyse des difficultés du langage C et de Python, nécessitant des exemples de code spécifiques. À l'ère numérique d'aujourd'hui, la technologie de programmation est devenue une capacité de plus en plus importante. Que vous souhaitiez travailler dans des domaines tels que le développement de logiciels, l'analyse de données, l'intelligence artificielle ou simplement apprendre la programmation par intérêt, choisir un langage de programmation adapté est la première étape. Parmi les nombreux langages de programmation, le langage C et Python sont deux langages de programmation largement utilisés, chacun ayant ses propres caractéristiques. Cet article analysera les niveaux de difficulté du langage C et Python

L'IA utilisée | L'IA a créé un vlog sur la vie d'une fille vivant seule, qui a reçu des dizaines de milliers de likes en 3 jours L'IA utilisée | L'IA a créé un vlog sur la vie d'une fille vivant seule, qui a reçu des dizaines de milliers de likes en 3 jours Aug 07, 2024 pm 10:53 PM

Rédacteur du Machine Power Report : Yang Wen La vague d’intelligence artificielle représentée par les grands modèles et l’AIGC a discrètement changé notre façon de vivre et de travailler, mais la plupart des gens ne savent toujours pas comment l’utiliser. C'est pourquoi nous avons lancé la rubrique « AI in Use » pour présenter en détail comment utiliser l'IA à travers des cas d'utilisation de l'intelligence artificielle intuitifs, intéressants et concis et stimuler la réflexion de chacun. Nous invitons également les lecteurs à soumettre des cas d'utilisation innovants et pratiques. Lien vidéo : https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ Récemment, le vlog de la vie d'une fille vivant seule est devenu populaire sur Xiaohongshu. Une animation de style illustration, associée à quelques mots de guérison, peut être facilement récupérée en quelques jours seulement.

Compte à rebours des 12 points faibles de RAG, l'architecte senior de NVIDIA enseigne les solutions Compte à rebours des 12 points faibles de RAG, l'architecte senior de NVIDIA enseigne les solutions Jul 11, 2024 pm 01:53 PM

La génération augmentée par récupération (RAG) est une technique qui utilise la récupération pour améliorer les modèles de langage. Plus précisément, avant qu'un modèle de langage ne génère une réponse, il récupère les informations pertinentes à partir d'une vaste base de données de documents, puis utilise ces informations pour guider le processus de génération. Cette technologie peut considérablement améliorer l'exactitude et la pertinence du contenu, atténuer efficacement le problème des hallucinations, augmenter la vitesse de mise à jour des connaissances et améliorer la traçabilité de la génération de contenu. RAG est sans aucun doute l’un des domaines de recherche les plus passionnants en matière d’intelligence artificielle. Pour plus de détails sur RAG, veuillez vous référer à l'article de la rubrique de ce site "Quelles sont les nouveautés de RAG, spécialisée dans le rattrapage des défauts des grands modèles ?" Cette revue l'explique clairement. Mais RAG n'est pas parfait et les utilisateurs rencontrent souvent des « problèmes » lorsqu'ils l'utilisent. Récemment, la solution avancée d'IA générative de NVIDIA

Validation des expressions régulières PHP : détection du format numérique Validation des expressions régulières PHP : détection du format numérique Mar 21, 2024 am 09:45 AM

Vérification des expressions régulières PHP : détection du format numérique Lors de l'écriture de programmes PHP, il est souvent nécessaire de vérifier les données saisies par l'utilisateur. L'une des vérifications courantes consiste à vérifier si les données sont conformes au format numérique spécifié. En PHP, vous pouvez utiliser des expressions régulières pour réaliser ce type de validation. Cet article explique comment utiliser les expressions régulières PHP pour vérifier les formats de nombres et fournit des exemples de code spécifiques. Tout d’abord, examinons les exigences courantes de validation du format numérique : Entiers : contiennent uniquement des nombres de 0 à 9, peuvent commencer par un signe plus ou moins et ne contiennent pas de points décimaux. point flottant

See all articles