Groupe optionnel Regex
Je suis en utilisant cette regex:
((?:[a-z][a-z]+))_(\d+)_((?:[a-z][a-z]+)\d+)_(\d{13})
pour correspondre à des chaînes de caractères comme ceci:
SH_6208069141055_BC000388_20110412101855
séparant en 4 groupes:
SH
6208069141055
BC000388
20110412101855
Question: Comment puis-je faire le premier groupe facultatif, de sorte que le groupe qui en résulte est une chaîne vide?
Je veux obtenir 4 groupes dans tous les cas, lorsque cela est possible.
Chaîne d'entrée pour ce cas: (non souligné après le premier groupe)
6208069141055_BC000388_20110412101855
source d'informationauteur joe
Vous devez vous connecter pour publier un commentaire.
Vous pouvez facilement simplifier votre regex à ceci:
Je ne suis pas sûr de savoir si la chaîne d'entrée sans le premier groupe sera le trait de soulignement ou pas, mais vous pouvez utiliser le haut regex si c'est l'ensemble de la chaîne.
regex101 démo
Comme vous pouvez le voir, les sujets du groupe 1 dans le deuxième match est vide et commence à appariés du groupe 2.