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

219
Views
¿Cómo unir todas las líneas que tienen dos palabras que no son iguales?

¿Es posible usar Regex para hacer coincidir todas las líneas que tienen 2 palabras que no son iguales?

Entiendo que puedo usar \d+: ([,\w]+ )\1|(.+)/gm
Aquí es donde capturas las líneas con la misma palabra
Luego captura todo lo demás
Luego ejecuta la función para hacer algo solo con el grupo 2
Pero, ¿hay alguna manera de hacer coincidir solo las líneas que no son iguales?

1: 43.186 43.186
2: 296.531 296.531
3: 108086 108086
4: abcdef abcdef
5: Capture This
6: 497.802 497.802
7: 200,062 300,062
8: Not Same
9: 202232 252232
10: 4.324.452 4.324.452

Ejemplo:

 let string = ` 1: 43,186 43,186 2: 296,531 296,531 3: 108086 108086 4: abcdef abcdef 5: Capture This 6: 497,802 497,802 7: 200,062 300,062 8: Not Same 9: 202232 252232 10: 4,324,452 4,324,452 `; let magicalRegex = /\d+: (This One) (Does not match this one)/gm; string.replace(magicalRegex, matched=>{ /*These are the matches I found master*/ ` 5: Capture This 7: 200,062 300,062 8: Not Same 9: 202232 252232 ` /*Run some special code*/ /*Return matched*/ });

First Second Third
isNum: Anything Must Match Second

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede usar /^\d+:\s+(\S+)\s+(?!\1$)\S+$/gm regex para extraer las coincidencias y luego simplemente unir los elementos, vea la demostración de expresiones regulares y la demostración de JavaScript a continuación:

 let string = `1: 43,186 43,186 2: 296,531 296,531 3: 108086 108086 4: abcdef abcdef 5: Capture This 6: 497,802 497,802 7: 200,062 300,062 8: Not Same 9: 202232 252232 10: 4,324,452 4,324,452`; let magicalRegex = /^\d+:\s+(\S+)\s+(?!\1$)\S+$/gm; console.log( string.match(magicalRegex).join("\n") )

La expresión regular ^\d+:\s+(\S+)\s+(?!\1$)\S+$ coincide

  • ^ - comienzo de línea
  • \d+ - uno o más dígitos
  • : - dos puntos
  • \s+ - uno o más espacios en blanco
  • (\S+) - Grupo 1: uno o más caracteres sin espacios en blanco
  • \s+ - uno o más espacios en blanco
  • (?!\1$) - una búsqueda anticipada negativa que falla la coincidencia si hay un valor de Grupo 1 inmediatamente a la derecha hasta el final de la cadena
  • \S+ - uno o más caracteres que no sean espacios en blanco
  • $ - fin de línea.
about 4 years ago · Juan Pablo Isaza Report

0

Para el caso de uso y los requisitos del OP, una expresión regular simple que coincida y capture un espacio que no sea en blanco (secuencia) separado por un espacio en blanco (secuencia) además debe garantizar la singularidad de cada contenido de nueva línea a través de una referencia inversa utilizada dentro de un lookahead negativo ... /^(\S+)\s+(?!\1).*/gm ...

 console.log( `43,186 43,186 296,531 296,531 108086 108086 abcdef abcdef Capture This 497,802 497,802 200,062 300,062 Not Same 202232 252232 4,324,452 4,324,452`.match(/^(\S+)\s+(?!\1).*/gm) );
 .as-console-wrapper { min-height: 100%!important; top: 0; }

Y para que coincida completamente con el código de ejemplo del OP, se debe refinar la primera expresión regular de /^(\S+)\s+(?!\1).*/gm a /^(?:\d+\:\s*)(\S+)\s+(?!\1).*/gm agregando (?:\d+\:\s*) al anterior, que coincide con el patrón de dígitos, dos puntos y espacios en blanco al comienzo de cada nueva línea. ..

 console.log( `1: 43,186 43,186 2: 296,531 296,531 3: 108086 108086 4: abcdef abcdef 5: Capture This 6: 497,802 497,802 7: 200,062 300,062 8: Not Same 9: 202232 252232 10: 4,324,452 4,324,452`.match(/^(?:\d+\:\s*)(\S+)\s+(?!\1).*/gm).join('\n') );
 .as-console-wrapper { min-height: 100%!important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report

0

Bueno, si te entendí correctamente, la expresión regular se vería así

 string regex = @"^(\w+)\s(?:(?!\1).)*$";

Aquí está el violín: https://dotnetfiddle.net/0ueUKd Y marcado aquí: https://www.regexpal.com/

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!