web-dev-qa-db-fra.com

Quelle expression rationnelle correspondra à chaque caractère sauf la virgule ',' ou le point-virgule ';'?

Est-il possible de définir une regex qui correspondra à tous les caractères sauf un certain caractère défini ou un ensemble de caractères?

Fondamentalement, je voulais diviser une chaîne par une virgule (,) ou un point-virgule (;). Alors je pensais le faire avec une regex qui correspondrait à tout jusqu'à ce qu'il rencontre une virgule ou un point-virgule.

302
Kshitij Saxena -KJ-
[^,;]+         

Vous n'avez pas spécifié l'implémentation de regex que vous utilisez. La plupart d'entre eux ont une méthode Split qui prend les délimiteurs et les sépare. Vous voudrez peut-être utiliser celui-ci avec une classe de caractères "normale" (sans ^):

[,;]+
410
Mehrdad Afshari

Utilisez des classes de caractères. Une classe de caractères commençant par le curseur correspond à tout ce qui n'est pas dans la classe.

[^,;]
71
Thom Smith

utilisez un classe de caractère négative :

[^,;]+
37
knittl

Utilisez ceci:

([^,;]*[,;])*
2
NawaMan