91 votes

Liste regex pour liste délimitée par des virgules

Quelle est l'expression régulière pour valider une liste délimitée par des virgules comme celle-ci:

 12365, 45236, 458, 1, 99996332, ......
 

127voto

Asaph Points 56989

La solution (précédemment) acceptée ne fonctionnera pas pour une liste contenant un seul élément. En outre, il correspondra à la virgule de fin et aux espaces. Je suggère qu'il soit modifié pour:

(\d+)(,\s*\d+)*

12voto

mcherm Points 5209

Cela dépend un peu de vos exigences exactes. Je suppose: tous les nombres, toutes les longueurs, les nombres ne peuvent pas avoir de zéros ni des virgules ou des points décimaux. les numéros individuels toujours séparés par une virgule, puis un espace, et le dernier numéro n'a PAS de virgule et d'espace après. N'importe laquelle de ces erreurs simplifierait la solution.

 ([1-9] [0-9] *, []) * [1-9] [0-9] * 

Voici comment j'ai construit ça mentalement:

 [0-9]  any digit.
[1-9][0-9]*  leading non-zero digit followed by any number of digits
[1-9][0-9]*, as above, followed by a comma
[1-9][0-9]*[ ]  as above, followed by a space
([1-9][0-9]*[ ])*  as above, repeated 0 or more times
([1-9][0-9]*[ ])*[1-9][0-9]*  as above, with a final number that doesn't have a comma.
 

9voto

madcolor Points 4077

Match en double délimité par des virgules éléments:

(?<=,|^)([^,]*)(,\1)+(?=,|$)

De référence.

Cette expression peut être utilisée pour partager les valeurs d'une virgule delimitted liste. Éléments de la liste peuvent être cotées, non cotées ou vide. Des virgules à l'intérieur d'une paire de guillemets ne sont pas appariés.

,(?!(?<=(?:^|,)\s*"(?:[^"]|""|\\")*,)(?:[^"]|""|\\")*"\s*(?:,|$))

De référence.

7voto

w35l3y Points 2316
/^\d+(?:, ?\d+)*$/

2voto

PPPaul Points 96

Je l'ai utilisé pour une liste d'éléments qui doivent être alphanumériques sans traits de soulignement au début de chaque élément.

 ^(([0-9a-zA-Z][0-9a-zA-Z_]*)([,][0-9a-zA-Z][0-9a-zA-Z_]*)*)$
 

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