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

284
Views
¿Hay un RegEx para extraer valores separados por punto y coma de una cadena... que posiblemente contenga una cadena con punto y coma?

Me gustaría extraer valores de una cadena de valores separados por punto y coma que también podrían contener punto y coma pero no como separador. El RegEx que encontré en este sitio web (perdí la publicación) está casi completo porque separa la clave y su valor.

Ejemplo: my.parameter 10; the.foo "Procedural Map"; pve; server.description "This; is \"my\", my description,.\n"

Resultado actual con [^; "]+|"(?:\\"|[^"])*"/g

 [ 'server.seed', '10', 'pve', 'server.level', '"Procedural Map"', 'server.description', '"This; is \\"my\\", server; description,."' ]

Resultado deseado

 [ 'my.parameter 10', 'the.foo "Procedural Map"', 'pve', 'server.description "This; is \"my\", server; description,.\n"' ]

¿Me pueden ayudar a mejorar el RegEx para agrupar el parámetro y su valor?

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

0

Encontré una solución reemplazando el separador por el separador ASCII (␟) y luego dividiendo el resultado.

 const separatorPattern = /; (?=([^"]*"[^"]*")*[^"]*$)/g; const myRawString = "server.seed 10; server.pve, server.level \"Procedural Map\"; server.description \"This; is \\\"my\\\", server; description,.\""; const replacedSeparator = myRawString.replace(separatorPattern, "␟"); const parameters = replacedSeparator.split("␟"); console.log(parameters); /*[ 'server.seed 10', 'server.pve, server.level "Procedural Map"', 'server.description "This; is \\"my\\", server; description,."' ]*/
about 4 years ago · Juan Pablo Isaza Report

0

Puede usar un patrón repetitivo para hacer coincidir primero cualquier carácter excepto el ; y luego, opcionalmente, haga coincidir desde una apertura hasta el cierre de comillas dobles y haga coincidir las comillas dobles escapadas en el medio.

Después de eso, opcionalmente, repita la clase de caracteres [^";\\]* para que coincida también con lo que viene después de la comilla doble de cierre.

 [^;"\\]+(?:"(?:[^"\\]*(?:\\.[^"\\]*)*)"[^";\\]*)*
  • [^;"\\]+ Coincidencia 1+ veces cualquier carácter excepto ; " \
  • (?: Grupo de no captura para repetir como un todo
    • " literalmente
    • (?: grupo de no captura
      • [^"\\]* Coincide 0+ veces con cualquier carácter excepto " \
      • (?:\\.[^"\\]*)* Opcionalmente, repite la coincidencia de \ y cualquier carácter seguido de 0+ veces cualquier carácter excepto " y \
    • ) Cerrar el grupo de no captura
    • " literalmente
    • [^";\\]* Opcionalmente coincide con cualquier carácter excepto " ; \
  • )* Cierre el grupo externo de no captura y, opcionalmente, repita

Demostración de expresiones regulares

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!