494 votes

Regex: mise en correspondance avec la première occurrence d'un caractère

Je cherche un modèle qui correspond tout jusqu'à ce que la première occurrence d’un caractère spécifique, dire par « ; » - un point-virgule.

J’ai écrit ceci :

Mais elle correspond en fait tout (y compris le point-virgule) jusqu'à la dernière occurrence d’un simple point-virgule.

659voto

sleske Points 29978

Vous avez besoin

/[^;]*/

L' [^;] est une classe de caractères, il correspond à tout, mais d'un point-virgule.

Pour citer l' perlre man:

Vous pouvez spécifier une classe de caractères, en utilisant une liste de caractères [] , qui correspond à tout caractère de la liste. Si le premier caractère après le "[" est "^", la classe correspond à tout caractère qui n'est pas dans la liste.

Cela devrait fonctionner dans la plupart des regex dialectes.

381voto

RJFalconer Points 2678

Serait ;

travailler ?

Le « ? » est un opérateur de paresseux, donc le regex attrape aussi peu que possible avant la correspondance la ;.

43voto

Glenn Slaven Points 15742

``

Le [^ ;] match, dit n’importe quoi sauf un point-virgule. Les crochets sont un opérateur correspondant ensemble, c’est essentiellement, correspond à tout caractère dans ce jeu de caractères, le `` à la rend début TI l’inverse match, match alors quoi que ce soit pas dans cette série.

17voto

Dan Breslau Points 9217

Essayez``

Google `` pour plus de détails.

11voto

Skilldrick Points 33002

Essayez``

C’est une inversion de classe de caractères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X