Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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