J'essaye de créer un regex qui correspondra à n'importe quelle valeur:

  • qui peut commencer ou pas par un +
  • qui est composé uniquement de nombres
  • les espaces sont autorisés après le + (si présent) et entre tout ensemble de nombres
  • doit contenir au moins un nombre

J'ai fait le regex suivant ^[+]{0,1}[0-9 ]+$, qui couvre les 3 premiers cas mais pas le dernier car les valeurs suivantes "+ " ou " " correspondent à l'expression régulière et ce n'est pas ce que je veux car ils ne contiennent aucun numéro.

0
bssyy78 4 nov. 2020 à 11:53

2 réponses

Meilleure réponse

Vous pouvez commencer le modèle avec un + facultatif suivi d'espaces facultatifs. Faites ensuite correspondre d'abord un seul chiffre, suivi d'espaces ou de chiffres facultatifs.

^[+]? *[0-9][0-9 ]*$

Démo Regex

Si les espaces de début ne peuvent être présents que là où il y a un + :, le + et les espaces peuvent être facultatifs:

^(?:[+] *)?[0-9][0-9 ]*$

Démo Regex

2
The fourth bird 4 nov. 2020 à 09:02

En supposant que les groupes de nombres sont séparés par des espaces:

^\+?( *\d+)+$

Remarques:

  • Les espaces introduisent éventuellement un ou plusieurs chiffres
  • Remplacement de {0,1} par ?
  • Remplacement de [0-9] par \d
0
Bohemian 4 nov. 2020 à 09:15