Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda