#1 Le 01/09/2021, à 16:20
- zephyre123
Expression reguliere [RESOLU]
Bonjour,
Je ne comprends pas l'expression régulière ci dessous :
sed -r 's/\*([^*]+\*/<b>\1<\/b>/g'
Ce que je ne comprends pas dans cette expression régulière :
- [^*]
Dans des crochets le ^ symbolise le contraire (tout sauf), mais la il est suivi de *
Et comme le * veut dire n'importe quelle suite de caractère ou rien le contraire c'est quoi ?
- \1
Que signifie le \1 dans cette expression régulière ?
Merci pour votre aide.
Dernière modification par zephyre123 (Le 01/09/2021, à 19:46)
Hors ligne
#2 Le 01/09/2021, à 16:45
- pingouinux
Re : Expression reguliere [RESOLU]
Bonjour,
Il manque une parenthèse fermante dans ton expression :
sed -r 's/\*([^*]+\*/<b>\1<\/b>/g'
sed -r 's/\*([^*]+)\*/<b>\1<\/b>/g'
Pour chaque chaîne ne contenant pas de * et entourée de deux *, ces deux * vont être remplacées respectivement par <b> et </b>.
- [^*]
Dans des crochets le ^ symbolise le contraire (tout sauf), mais la il est suivi de *
Et comme le * veut dire n'importe quelle suite de caractère ou rien le contraire c'est quoi ?
Entre crochets, * représente juste ce caractère.
- \1
Que signifie le \1 dans cette expression régulière ?
C'est l'intérieur de la première parenthèse ouvrante dans l'expression régulière.
Édité : Ajout de précisions
Dernière modification par pingouinux (Le 01/09/2021, à 17:04)
Hors ligne
#3 Le 01/09/2021, à 19:45
- zephyre123
Re : Expression reguliere [RESOLU]
C'est clair pour moi merci beaucoup pingouinux.
Je clos le sujet.
Hors ligne