Expression régulière, également connue sous le nom d'expression régulière, (anglais : Regular Expression, souvent abrégée en regex, regexp ou RE dans le code), c'est un concept en informatique. Les expressions régulières sont souvent utilisées pour récupérer et remplacer du texte qui correspond à un certain modèle. De nombreux langages de programmation prennent en charge la manipulation de chaînes à l'aide d'expressions régulières. Par exemple, Perl intègre un puissant moteur d’expressions régulières. Le concept d’expressions régulières a été popularisé à l’origine par des logiciels-outils sous Unix. Une expression régulière est une formule logique qui opère sur des chaînes (y compris des caractères ordinaires (par exemple, les lettres entre a à z) et des caractères spéciaux (appelés « métacaractères »)), qui utilise certains caractères spécifiques prédéfinis, et la combinaison de ces caractères spécifiques. les caractères forment une "chaîne de règle". Cette "chaîne de règle" est utilisée pour exprimer une logique de filtrage des chaînes. Une expression régulière est un modèle de texte qui décrit une ou plusieurs chaînes à rechercher lors de la recherche de texte.
J'ai dit beaucoup de bêtises, et tout le monde peut encore être confus. Illustrons cela à travers des exemples. Nous pouvons utiliser des outils de test d'expressions régulières ou Python. Tout d'abord, nous saisissons un texte de paragraphe.
bonjour, je m'appelle Tina, mon numéro de téléphone est le 123456 et mon site Web est http://tina.com.
[a-zA-z]+://[^\s]*
Nous pouvons obtenir le lien Web, qui est l'url dans le texte, n'est-ce pas incroyable?
C'est parce qu'il a ses propres règles de correspondance, dont certaines sont les suivantes.
Motif | Description |
. | Tout personnage |
* | 0 expressions ou plus |
+ | Une ou plusieurs expressions |
Vous pouvez vérifier plus de correspondance règles par vous-même.
?,*,+,d,w sont tous des caractères équivalents
équivaut à la longueur correspondante {0,1}
* équivaut à la longueur correspondante {0,}
+ équivaut à la longueur correspondante {1,}
d équivaut à [0-9]
D équivaut à [^0-9]
w équivaut à [A - Za-Z_0-9]
W est équivalent à [^a-Za-Z_0-9]
Ici, j'introduis une méthode de correspondance couramment utilisée & mdash & mdash; () , en lui passant la chaîne à rechercher et l'expression régulière, vous pouvez vérifier si l'expression régulière correspond à la chaîne.
res = re.match('hello\s(\d+)sword')
res = re.match('hello.*(\d+)sword')
C'est ce que nous utilisons le plus, voyons comment cela est utilisé.
import re useData = str(input('请输入字符串数据:')) ''' 匹配字符串中的数字,+是匹配前面的子表达式一次或多次 ''' digital = re.findall('\d+',useData) print(digital)
Jetons un coup d'œil aux résultats en cours d'exécution
La fonction findall() renvoie toutes les chaînes correspondantes et le type de données de la valeur de retour est une liste.
Parlons des symboles communs des expressions régulières.
Le caractère "." correspond à n'importe quel caractère.
Le caractère "" est un caractère d'échappement.
"[…]" est le jeu de caractères.
"(.*?)" est le caractère le plus couramment utilisé dans les robots d'exploration Python. Il s'appelle un algorithme glouton et peut correspondre à n'importe quel caractère.
Regardons un exemple de code ci-dessous.
import re a=‘xxixxjshdxxlovexxsfhxxpythonxx' data=re.findall(‘xx(.*?)xx') print(data)
Exécutons-le et voyons l'effet. "Résultats d'exécution" Cela signifie que cela signifie n'importe quelle chaîne. Si vous souhaitez trouver le symbole * dans une chaîne, vous devez échapper au *, c'est-à-dire ajouter un avant, runo*ob correspond à la chaîne runo*ob.
De nombreux métacaractères nécessitent un traitement spécial lorsqu'on essaie de les faire correspondre. Pour faire correspondre ces caractères spéciaux, vous devez d'abord "échapper" aux caractères, c'est-à-dire les faire précéder d'une barre oblique inverse. Le tableau suivant répertorie les caractères spéciaux dans les expressions régulières :
Description
Correspond à la position de fin de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, $ correspond également à «n’ ou «r’. Pour faire correspondre le caractère $ lui-même, utilisez $. | |
marque le début et la fin d'une sous-expression. Les sous-expressions peuvent être obtenues pour une utilisation ultérieure. Pour faire correspondre ces caractères, utilisez ( et ). | * |
+ | |
. | |