Aide fonction regexextract

Bonjour,

Je souhaiterais extraire, sur plusieurs cellules en exemple ci-dessous, la ou les chaînes de caractères se trouvant entre la quantité (1x, 4x, 13x, 1x) et l'expression entre parenthèses.

1x Power Surge (Revised) - R - Anglais - EX 1,80 EUR
4x Lurker (The Dark) - R - Anglais - GD 7,00 EUR
13x Telim'Tor (Mirage) - R - Anglais - NM 0,90 EUR
1x Phyrexian Marauder (Visions) - R - Anglais - NM 2,80 EUR

Quelqu'un pourrait-il m'aider à trouver la bonne formule pour cela ?

Merci !

Bonjour,

il y a certainement mieux ...

=MID(REGEXEXTRACT(A1;"x[A-Za-z ']+\(");3;LEN(REGEXEXTRACT(A1;"x[A-Za-z ']+\("))-4)

ce qui signifie ...

tous les caractères A-Za-z '

entre x et (, mais x et ( compris à la base d'où le mid

Pfiou, merci je crois que j'aurais pu chercher longtemps...

A-Za-z ' signifie "la chaine de caractère composée de majuscules, de minuscules, d'espaces et d'apostrophes ?

Si par exemple une chaine devait dans le futur contenir ? faudrait-il alors écrire A-Za-z '? ?

Aussi, le -4 de la fin n'est pas clair pour moi.

si tu mets ? il faut faire attention :

Les métacaractères sont \ ^ $ . [ ] | ( ) ? * + { }.
Pour annuler l'effet d'un métacaractère et le considérer comme un simple caractère, précédez-le par un \ (sauf lorsque le métacaractère est dans une classe de caractères).

note que j'ai bien mis un antislash avant (


j'aurais du mettre

=MID(REGEXEXTRACT(A1;"x.*\(");3;LEN(REGEXEXTRACT(A1;"x.*\("))-4)

sachant que . signifie n'importe quel caractère et * en nombre quelconque


le 4 c'est pour supprimer

  1. le x
  2. l'espace qui suite le x
  3. le (
  4. et l'espace qui précède (

Merci pour cette réponse, c'est très clair.

J'ai réussi, en recyclant ta formule, à extraire d'autres parties utiles de la chaine, comme la chaine entre parenthèses ou la lettre entre les 2 premiers tirets.

Par contre je galère pour extraire la chaine entre le 2eme tiret et le 3eme tiret.

J'ai essayé ça mais je reçois une erreur...

=MID(REGEXEXTRACT(A1;"(\-)\1.*(\-)\2");3;NBCAR(REGEXEXTRACT(A1;"(\-)\1.*(\-)\2"))

Plus simple dans ce cas

=split(A1;"-")

et pour n'avoir que le second terme

=query(split(A1;"-");"select Col2 ")

Génial, merci !

Rechercher des sujets similaires à "aide fonction regexextract"