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

187
Visualizações
Regex: coincide con la nueva línea o el final de la línea o el espacio en JS

Quería extraer :privacy y :date de la cadena de ejemplo a continuación.

Quería tener una restricción de expresiones regulares que describiera que un bloque :[^:\s]+ (por ejemplo, :privacy o :date ) solo puede terminar con un espacio \s o una nueva línea \n o un final de cadena $ (entonces Podré tener una regla para dividir lógicamente estos bloques en los pasos posteriores).

Así que simplemente pongo (?:$|\n|\s) al final de la expresión regular, pero no funciona para mí (la tercera expresión regular a continuación). Verifiqué dos veces que funciona cuando pongo \s o $ por separado (la primera y la segunda expresión regular a continuación), ahora no tengo idea de cómo puedo implementarlo. Gracias por tu ayuda.

 'note::tmp hogehoge. :privacy :date'.match(/\s:[^:\s]+\s/g) (1) [' :privacy '] 'note::tmp hogehoge. :privacy :date'.match(/\s:[^:\s]+$/g) (1) [' :date'] 'note::tmp hogehoge. :privacy :date'.match(/\s:[^:\s]+(?:$|\n|\s)/g) (1) [' :privacy ']
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede usar el patrón de expresión regular a continuación para que coincida con un patrón de bloque: [^:\s+]+ terminado por un espacio \s o una nueva línea \n o un final de cadena $

 /((:[^:\s+]+)(?:[\s\n]))|(:[^:\s+]+)(?:[\s\n])?$/gm (?:[\s\n]) - will check if the block is being followed by a space or a new line (:[^:\s+]+)(?:[\s\n])?$ - will check if the block is at the end of string or not.

también puede usar la técnica de búsqueda para lograr el mismo resultado

 (:[^:\s+]+)(?=\s|\n|$)
about 4 years ago · Santiago Trujillo Relatório

0

En su patrón \s:[^:\s]+\s está haciendo coincidir los caracteres de espacios en blanco iniciales y finales.

Lo que podría hacer es afirmar un límite de espacio en blanco usando (?!\S) a la derecha.

Para obtener el valor sin el carácter de espacio en blanco inicial, puede usar un grupo de captura.

 \s(:[^:\s]+)(?!\S)

Demostración de expresiones regulares

 const s = "note::tmp hogehoge. :privacy :date"; const regex = /\s(:[^:\s]+)(?!\S)/g; const result = Array.from(s.matchAll(regex), m => m[1]); console.log(result);

about 4 years ago · Santiago Trujillo 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