Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  Programmation  Bibliothèque  Cadre d'application  IDE  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Installation sous le système d'exploitation Windows XP
Introduction
Les remarques
Les opérateurs
Les expressions régulières (regex)
Les types de données
Les instuctions conditionnelles
Les instructions de boucles
Définition de fonction
Référence de fonctions
Référence de pragmas
Référence de modules
Catégorie
Exécution
Fichier
Hachage
Liste
Mathématique
Processus
Scalaires
Tableau
Taille fixe
Trigonométrie
Les premiers pas
Bonjour
Astronomie
Base de données
Biochimie
Colorimétrie
Conversion
Fichier
Finance
Fractale
Géographie
Géométrie
Gouvernement
Histoire
Jeux & stratégies
Mathématique
Médicale
Météorologie
Océanographie
Sport
Temps
Tri
Trigonométrie
Validation
Web
Phase lunaire
Table MySQL
Formulaire MySQL
Calcul du calcium corrigé
Calcul le taux d'alcoolémie
Boite en 3D de couleur RVB
Bin,Hex,Base62,...
Lecture d'un fichier texte séquentiel
Ecriture d'un fichier texte séquentiel
IPaymt/Interet
NPer
PPaymt/Principal
Triangle de «Sierpinski»
Distance en Km entre deux longitudes et latitudes
Aire d'un cercle
Aire d'une surface de prisme rectangulaire
Aire d'un triangle
Distance entre deux points
Treillis
Taxe de vente canadienne
Chiffre romain
Tours d'Hanois
Ackermann
Exp
Factoriel
Fibonacci
Log
Nombre premier
Odd
Random
Sqrt
Triangle Pascal
Hauteur utérine
Unité de mesure
Fréquence des vagues
Hockey
Année bissextile
Calendrier
Date de la Pâque
Heure courante
FirstDayOfMonth
Horloge à aiguille
Tri à bulle (Bubble Sort)
Tri Shell Sort
ArcCos
ArcSin
Atn/ATan/ArcTan/ArcTangente
Cos
Sin
Courriel
Bonjour
Optimisation
AJAX
LibreSSL
OpenSSL
Catalyst
CGI::Application
Dancer
Komodo IDE
Padre
Perl Express
SET's Editor
Téléchargement
Base de connaissances
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

Les expressions régulières permettent d'effectuer toute sorte de traitement et de comparaisons complexes sur des chaînes de caractères. Ainsi, en utilisant les symboles particuliers de façon approprié, les expressions régulières permettront de rechercher ou d'effectuer des remplacements dans une chaîne de caractères.

Les caractères spécifiques dans les expressions régulières

Symbole Description
\a Ce symbole indique un caractère de signal sonore (BELL)
\0NN Ces symboles indiquent des caractères à l'aide de leur code octal.
\cX Ces symboles indiquent des caractères de contrôle.
\f Ce symbole indique un caractère de saut de formulaire (ou saut de page)
\n Ce symbole indique un caractère de nouvelle ligne, neutre vis-à-vis les systèmes d'exploitation
\r Ce symbole indique un caractère de retour de chariot
\t Ce symbole indique un caractère de tabulation
\xNN Ces symboles indiquent des caractères à l'aide de leur code hexadécimal.

Les métacaractères dans les expressions régulières

Les 12 caractères suivants ont besoin d'un caractère d'échappement avec une barre oblique inversé (\), parce que, par défaut, ils ont des significations spécial :     \ | ( ) [ { ^ $ * + ? .

Symbole Description
. Ce symbole permet d'indiquer une correspondance avec un des caractères, à l'exception de «\n».
| Ce symbole permet d'indiquer une altération
( ) Ces symboles permettent d'indiquer un groupe et une capture
[ ] Ces symboles permettent d'indiquer une classe de caractères
\ Ce symbole permet d'indiquer de modifier le prochain caractère

Les ancres dans les expressions régulières

Symboles Description
^ Ce symbole permet d'indiquer le commencement d'une correspondance de chaine de caractères ou d'une ligne.
$ Ce symbole permet d'indiquer la fin d'une correspondance de chaine de caractères ou de ligne.
\b Ce symbole permet d'indiquer une correspondance d'une limite de «mot»
\B Ce symbole permet d'indiquer une correspondance d'une limite sans «mot»

Les quantifieurs dans les expressions régulières

Les quantifieurs dans les expressions régulières sont appliqués avant un «atome».

Symbole Description
* Ce symbole permet d'indiquer une correspondance de 0 ou plusieurs fois
+ Ce symbole permet d'indiquer une correspondance de 1 ou plusieurs fois
? Ce symbole permet d'indiquer une correspondance de 0 ou 1 fois.
{N} Ce symbole permet d'indiquer une correspondance exacte au nombre de fois «N»
{N,} Ce symbole permet d'indiquer une correspondance d'un minimum de «N» nombre de fois.
{N,M} Ce symbole permet d'indiquer une correspondance dans l'intervalle de fois «N» et «M» nombre de fois.

Les caractères de classe de métacaractères dans les expressions régulières

Symbole Description
^ Ce symbole permet d'indiquer le premier caractère d'une classe effectue une négation de cette classe.
_ Ce symbole permet d'indiquer un moins le premier ou le dernier caractère de la classe, utilisé pour les rangs.

Les caractères de raccourci de classe dans les expressions régulières

Symbole Équivalence Description
\d [0-9] Ce symbole permet d'indiquer un chiffre.
\D [^0-9] Ce symbole permet d'indiquer que se n'est pas un chiffre.
\s [ \t\n\r\f] Ce symbole permet d'indiquer un espace
\S [^ \t\n\r\f] Ce symbole permet d'indiquer que se n'est pas un espace
\w [a-zA-Z0-9_] Ce symbole permet d'indiquer un caractère de «mot».
\W [^a-zA-Z0-9_] Ce symbole permet d'indiquer que se n'est pas un caractère de «mot».

Les métaguillemets et les cas de transformations dans les expressions régulières

Symbole Description
\E Ce symbole permet d'indiquer la fin de la modification.
\L Ce symbole permet d'indiquer des caractères minuscules jusqu'à «\E».
\Q Ce symbole permet d'indiquer des caractères de guillemet de méta jusqu'à «\E».
\U Ce symbole permet d'indiquer des caractères majuscules jusqu'à «\E».

Les variables spéciales dans les expressions régulières

Symbole Description
$` Ce symbole permet d'indiquer les caractères correspondant à la gauche.
$& Ce symbole permet d'indiquer les caractères correspondant.
$’ Ce symbole permet d'indiquer les caractères correspondant à la droite.
\N Ce symbole permet d'effectuer la capture de Nième ensemble de parenthèses si dans une correspondance de côté.
$N Ce symbole permet d'effectuer la capture de Nième ensemble de parenthèses si ce n'est pas dans une correspondance de côté.

Les attributs (modificateurs) dans les expressions régulières

Symbole Description
/e Ce symbole permet d'indiquer qu'il faut évaluer le côté gauche de l'expression
/g Ce symbole permet d'indiquer qu'il faut effectuer une recherche dans toutes les sous-chaines de caractères
/i Ce symbole permet d'indiquer qu'il n'y a aucune distinction entre les majuscules et minuscules
/m Ce symbole permet d'indiquer qu'il faut effectuer le traitement de chaine de caractères sur de multiples lignes
/s Ce symbole permet d'indiquer qu'il faut effectuer le traitement de chaine de caractères sur une seule ligne
/x Ce symbole permet d'indiquer qu'il faut effectuer le traitement étendu des expressions régulières

Les opérations d'expressions régulières

Symbole Description
=~ Ce symbole permet d'effectuer l'application d'une expression régulière (regex).
!~ Ce symbole permet d'effectuer la négation de l'application d'une expression régulière (regex).

Exemples

Voici un exemple montrant comment remplacer le «M.» par «Monsieur» :

  1. #!/usr/bin/perl
  2.  
  3. my $Source;
  4.  
  5. $Source = "Bonjour M. Maltais, comment allez-vous ?";
  6. $Source =~ s/(M\.)/Monsieur/g;
  7.  
  8. print $Source;

on obtiendra le résultat suivant :

Bonjour Monsieur Maltais, comment allez-vous ?

Voici un exemple montrant comment remplacer les apostrophes (simple quote) par des guillemets (double quote) dans les balises «IMG SRC» du HTML :

  1. #!/usr/bin/perl
  2.  
  3. my $Source;
  4.  
  5. $Source = "<img src=\"1.jpg\"><img src = '2.jpg' /><img src='3.jpg'><img src='4.jpg' border=\"1\"><img src='4.jpg'><img border=\"1\" src='6.jpg' >";
  6. $Source =~ s/<img([^>]*)src\s*=\s*["'']([^"'']+)["'']([^>]*)>/<img$1src="$2"$3>/g;
  7.  
  8. print $Source;

on obtiendra le résultat suivant :

<img src="1.jpg"><img src="2.jpg" /><img src="3.jpg"><img src="4.jpg" border="1"><img src="4.jpg"><img border="1" src="6.jpg" >

Voici un exemple montrant comment remplacer les apostrophes (simple quote) par des guillemets (double quote) dans les balises «IMG SRC» du HTML sans tenir compte des majuscules ou des minuscules (la lettre «i» pour les attributs) :

  1. #!/usr/bin/perl
  2.  
  3. my $Source;
  4.  
  5. $Source = "<img src=\"1.jpg\"><img src = '2.jpg' /><IMG src='3.jpg'><img src='4.jpg' border=\"1\"><img src='4.jpg'><img border=\"1\" src='6.jpg' ><img SRC='7.gif' style=\"border:1px;\">";
  6. $Source =~ s/<img([^>]*)src\s*=\s*["'']([^"'']+)["'']([^>]*)>/<img$1src="$2"$3>/gi;
  7.  
  8. print $Source;

on obtiendra le résultat suivant :

<img src="1.jpg"><img src="2.jpg" /><img src="3.jpg"><img src="4.jpg" border="1"><img src="4.jpg"><img border="1" src="6.jpg" ><img src="7.gif" style="border:1px;">

L'exemple suivant permet d'enlever les caractères n'étant pas ASCII :

  1. #!/usr/bin/perl
  2.  
  3. $fulltext = "ABC\255DEF\154\65\66";
  4. print "AVANT: ".$fulltext . "\n";
  5.  
  6. $fulltext =~ s/[^[:ascii:]]//g;
  7.  
  8. print "APRES: ".$fulltext . "\n";

on obtiendra le résultat suivant :

AVANT: ABC­DEFl56
APRES: ABCDEFl56

Remarques

Voir également

Langage de programmation - PHP - Référence de procédures et fonctions - preg_replace

PARTAGER CETTE PAGE SUR
Dernière mise à jour : Dimanche, le 22 février 2015