regulares regular online inside expresiones regex optional regex-group

regular - regex inside regex



Regex grupo opcional (1)

Puede simplificar fácilmente su expresión regular para ser esto:

(?:([a-z]{2,})_)?(/d+)_([a-z]{2,}/d+)_(/d+)$

No estoy seguro de si la cadena de entrada sin el primer grupo tendrá el guión bajo o no, pero puede usar la expresión regular anterior si es la cadena completa.

regex101 demo

Como puede ver, el grupo emparejado 1 en el segundo partido está vacío y comienza en el grupo emparejado 2.

Estoy usando esta expresión regular:

((?:[a-z][a-z]+))_(/d+)_((?:[a-z][a-z]+)/d+)_(/d{13})

para unir cuerdas como esta:

SH_6208069141055_BC000388_20110412101855

separando en 4 grupos:

SH 6208069141055 BC000388 20110412101855

Pregunta: ¿Cómo hago que el primer grupo sea opcional, de modo que el grupo resultante sea una cadena vacía?
Quiero obtener 4 grupos en cada caso, cuando sea posible.

Cadena de entrada para este caso: (sin subrayado después del primer grupo)

6208069141055_BC000388_20110412101855