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

127
Visualizações
Cadena dividida por marcador de posición con cadena antepuesta opcional

Estoy tratando de crear una expresión regular para que coincida con una cadena, que tiene un marcador de posición * . El problema para mí es que este marcador de posición podría tener opcionalmente algunos caracteres al frente:

Se me ocurrió /(.*)(\w)\*(.*)/ :

 This is ju* an example This is * an example T* is just an example * is just an example This is just an ex* This is just an *

Necesito obtener tres partes de cada cadena:

  1. La primera parte de la cadena antes del marcador de posición (con cadena antepuesta opcional),
  2. la propia cadena de marcador de posición antepuesta y
  3. el resto de la cadena.

Así que el resultado debería ser:

 This is|ju|an example This is|<null>|an example <null>|T|is just an example <null>|<null>|is just an example This is just an|ex|<null> This is just an|<null>|<null>

https://regex101.com/r/0pFhdE/1

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

0

Lo que probé es:

 ^(.*?)[^\S\n]*([^\s*]*)\*[^\S\n]*(.*)$

Ver una demostración en línea


  • ^ - Anclaje de línea de salida;
  • (.*?) - Su primer grupo de captura con 0+ (perezosos) caracteres que no sean de nueva línea;
  • [^\S\n]* - 0+ (Greedy) carácter que no son caracteres que no sean espacios en blanco o saltos de línea. Supongo que puede cambiar a \s* en su aplicación, pero para fines de demostración usé esto;
  • ([^\s*]*) - Un segundo grupo de captura para hacer coincidir 0+ (Codiciosos) caracteres que no sean espacios en blanco o asteriscos;
  • \*[^\S\n]* - Asteriscos literales, seguidos de 0+ (Greedy) caracteres que no son espacios en blanco ni saltos de línea;
  • (.*) - Un tercer grupo de captura para capturar 0+ (Codiciosos) caracteres que no sean de nueva línea;
  • $ - Anclaje de línea final.
about 4 years ago · Juan Pablo Isaza Relatório

0

Esto parece coincidir con sus requisitos.

 /^(.*?)(\w*)\*(.*)/g 

 const arr = [ "This is ju* an example", "This is * an example", "T* is just an example", "* is just an example", "This is just an ex*", "This is just an *", ]; console.log( arr.map(x => { const myRegexp = /^(.*?)(\w*)\*(.*)/g; // new RegExp("", "gm"); const match = myRegexp.exec(x); return match.map(x => x.trim()); }) );
 .as-console-wrapper { max-height: 100vh !important; }

Referencia: emparejamiento codicioso y perezoso

about 4 years ago · Juan Pablo Isaza Relatório

0

Usa tuCadena.split(/(\w**)/)

las respuestas seran:

[ "Esto es", "ju*", "un ejemplo"]

[ "Esto es un ejemplo" ]

[ "", "T*", "es solo un ejemplo" ]

[ "", "*", "es solo un ejemplo" ]

[ "Esto es solo un ", "ex*", "" ]

[ "Esto es solo un ", "*", "" ]

maneje los espacios en blanco y * para que coincida con su resultado

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