Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

330
Visualizações
Regex JS: valor predeterminado del grupo / crear un grupo vacío si no se encuentra el valor

Tengo la siguiente cadena:

 "Group: I_am_group |SubGroup: I_am_subgroup"

Y la siguiente expresión regular:

 Group:\s(?<group>\w+) \|SubGroup:\s(?<subGroup>\w*)

El resultado es:

resultado

Hasta aquí, es perfecto para mí, pero cuando tengo el siguiente caso:

para las siguientes cadenas:

 1. "Group: I_am_group |SubGroup:" 2. "Group: I_am_group |" 3. "Group: I_am_group"

Quiero obtener el resultado (por ejemplo, para la cadena "Grupo: I_am_group"):

 Match1 Group: I_am_group group I_am_group subGroup null

¿Es posible con expresiones regulares crear un grupo vacío cuando no se encuentra? o dar un valor predeterminado a un grupo si no se encuentra el valor?

En este caso, quiero crear el grupo llamado 'subgrupo' en el resultado con el valor nulo.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Los grupos no coincidentes por especificación tienen un valor undefined , no null . Un grupo con nombre no tiene coincidencia, por ejemplo, cuando aparece dentro de otro grupo opcional que no tiene coincidencia.

Ahora tome sus tres cadenas de ejemplo que deberían producir un grupo vacío y compárelas con la cadena original "Group: I_am_group |SubGroup: I_am_subgroup" .

  • En la cadena (1.), " I_am_subgroup" . Eso es \s(?<subGroup>\w*) en la expresión regular.
  • En la cadena (2.), "SubGroup: I_am_subgroup" . Eso es SubGroup:\s(?<subGroup>\w*) en la expresión regular.
  • En la cadena (3.), falta " |SubGroup: I_am_subgroup" . Eso es \|SubGroup:\s(?<subGroup>\w*) en la expresión regular.

Al incluir estas tres partes en un grupo opcional, obtenemos

 /Group:\s(?<group>\w+)( \|(SubGroup:(\s(?<subGroup>\w*))?)?)?/

Esta es una expresión regular que coincide en todos los casos con una coincidencia vacía para subGroup . Sin embargo, tenga en cuenta que \w* se puede reemplazar con \w+ , a menos que desee que subGroup sea una cadena vacía (no undefined ) en los casos en que todas las demás partes estén presentes.

 const regExp = /Group:\s(?<group>\w+)( \|(SubGroup:(\s(?<subGroup>\w+))?)?)?/; const str1 = "Group: I_am_group |SubGroup:"; const str2 = "Group: I_am_group |"; const str3 = "Group: I_am_group"; console.log(str1.match(regExp).groups); console.log(str2.match(regExp).groups); console.log(str3.match(regExp).groups);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda