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

130
Views
Regex encontrando toda la línea del párrafo

Necesito encontrar la línea real del párrafo, el dibujo del párrafo por el editor de rebajas, puede agregar una casilla de verificación, radio, cuadro de texto y párrafo a través del editor.

El str real es algo como esto,

 this is paragraph line1 ?[question_2]{"category":[]}[who are you]=[] {1,2} [] OPTION 1 [] OPTION 2 [] OPTION 3 this is paragraph line3 ?[question_3]{"category":[]}[picode]=_ [PLACEHOLDER_TEXT] ?[question_1]{"category":[]}[sex]=() {1} () male () femele this is paragraph line3

¿Todos los tipos de preguntas tienen que comenzar con ?[sometext] , para que pueda usar esta expresión regular

radio -> [\?] ?[([0-9a-z_]. ?)]({(?:[^{}]|?) })? ?[?(. ?)]? ?[=] ?() ?({[0-9,]+})?([^] ?)(\n\n|^\n)

casilla de verificación -> [\?] ?[([0-9a-z_]. ?)]({(?:[^{}]|?) })? ?[?(. ?)]? ?[=] ?[] ?({[0-9,]+})?([^] ?)(\n\n|^\n),

similar a todas las entradas, mi pregunta, ¿cómo puedo obtener el texto de la línea de párrafo (esos no comienzan con? [] que pueden incluir letras pequeñas/mayúsculas/dígitos)

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Puedes hacerlo así:

 ^(?!(\?)|(\[)).+(\n|$)

^ le mostrará el comienzo de la línea, (?! buscará los caracteres ? o [, .+ coincidirá con el resto de los caracteres hasta \n (salto de línea) o $ (final del archivo).

demostración de expresiones regulares 101

EDITAR

Para agrupar todas las líneas de un párrafo, intente esto:

 ^((?!(\?)|(\[))(.+(\n|$)))+

demostración de expresiones regulares 101

about 4 years ago · Santiago Gelvez Report

0

aquí hay algunas ideas clave al manejar la detección de líneas de hilo.

  • algunos sistemas operativos y navegadores usan extremos de línea diferentes (no solo \n . A veces es \r o \r\n )
  • ^ no dice el comienzo de la línea. indica el comienzo de toda la cadena.

use simple .split() . + regex funciona bien en este caso. aquí hay un buen ejemplo que he encontrado en SO.

 https://stackoverflow.com/questions/21895233/how-to-split-string-with-newline-n-in-node function splitLines(t) { return t.split(/\r\n|\r|\n/); } const lines = splitLines(yourString).forEach(line => radioOrCheckBoxRegex(line));

Markdown es difícil (peligroso)

Lamento desviarme de las expresiones regulares, pero le aconsejo que no implemente Markdown desde cero . Tendrás un sinfín de casos extremos. Porque,

  • si acepta una entrada del usuario, requiere cierto grado de desinfección.
  • la expectativa de los usuarios es siempre diferente de su expectativa. pondrán tantas cadenas extrañas para rebajar y esperarán que su código funcione. Las librerías de descuento probadas en batalla son útiles en este caso.
  • la personalización de una librería de rebajas puede enseñarle sobre el proceso de análisis de rebajas.'
  • Markdown es también un estándar complejo documentado. siga las reglas de rebajas existentes antes de comenzar a implementar una. ¿Estás siguiendo las reglas de rebajas de Github ? ¿O estás siguiendo las reglas de Commonmark ? o tal vez algo más? y los usuarios también esperarán que su aplicación siga cualquiera de estas reglas.

Implementar una reducción personalizada a través de librerías clásicas de reducción como marcado.js podría ser una mejor idea. la mayoría de las librerías de rebajas usan un tokenizador interno, que maneja la expresión regular que ha mencionado. un texto sin formato se convierte en datos reconocibles del programa (json, javascript obj) con tokenizadores. es posible usar tokenizadores internos, separados del renderizador real.

verifique este código lexer (tokenizer) de marcado.js

about 4 years ago · Santiago Gelvez 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!