Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

133
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!