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.
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