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

291
Visualizações
JS Regex: encuentra una subcadena que contiene caracteres especiales

¿Me pueden ayudar a entender cómo hacer lo siguiente?

Tengo cadenas (3 formatos para esta cadena):

  1. "Sección_1: hola y adiós | sección_2: kuku"
  2. "Sección_1: hola y adiós y hola | sección_2: kuku"
  3. "Sección_1: hola | sección_2: kuku"

Quiero obtener el resultado:

  1. Sección de grupo_1: "hola y adiós", Sección de grupo_2: "kuku"
  2. Sección de grupo_1: "hola, adiós y hola", Sección de grupo_2: "kuku"
  3. Sección de grupo_1: "hola", Sección de grupo_2: "kuku"

Ahora tengo la expresión regular (pero no me funciona debido al '&'):

 Section_1:\s*(?<section_1>\w+)(\s*\|\s*(Section_2:(\s*(?<section_2>.*))?)?)?

Nota: la expresión regular está capturando 2 grupos: "sección_1" y "sección_2"

La pregunta es: ¿cómo puedo leer la subcadena? La lata contiene cero o más de " & {palabra}"

Gracias por adelantado

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

0

Según los comentarios, establecimos que la combinación ' & '- actúa como un delimitador entre palabras. Probablemente hay muchas formas de escribir un patrón para capturar estas subcadenas, pero para mí, estas se pueden agrupar en extensas o simples. Dependiendo de si necesita validar la entrada más a fondo, puede usar:

 ^section_1:\s*(?<section_1>[az]+(?:\s&\s[az]+)*)\s*\|\s*section_2:\s*(?<section_2>[az]+(?:\s&\s[az]+)*)$

Vea una demostración en línea. El patrón significa:

  • ^ - Anclaje de línea de salida;
  • section_1:\s* - Coincide con 'Section_1:' literalmente seguido de 0+ caracteres de espacio en blanco;
  • (?<section_1>[az]+(?:\s+&\s[az]+)*) - Un grupo de captura con nombre para capturar [az]+ como 1+ letras mayúsculas/minúsculas (marca que no distingue entre mayúsculas y minúsculas), seguido de un grupo de no captura anidado que coincide con 0+ veces el patrón (?:\s&\s[az]+)* para probar cualquier delimitador como se indicó anteriormente, seguido de otra palabra;
  • \s*\|\s*section_2:\s* - Coincide con los caracteres de espacio en blanco, un símbolo de tubería literal y, literalmente, 'Sección_2:' hasta;
  • (?<section_2>[az]+(?:\s&\s[az]+)*) - Un segundo grupo de captura con nombre que coincide con el mismo patrón que el grupo de captura con nombre anterior;
  • $ - Anclaje de línea final.

Nota : como se mencionó, hay un montón de patrones diferentes que uno podría usar dependiendo de qué tan específico deba ser acerca de la validación de la entrada. Por ejemplo: \s*(?<section_1>[^:|]+?)\s*\|\s*[^:]*:\s*(?<section_2>.+) también puede funcionar.

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