Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

128
Visualizações
Regex finding entire line from paragraph

I need to find the actual line from the paragraph, the paragraph drawing by the markdown editor you can add a checkbox, radio, textbox, and paragraph through the editor.

The actual str is something like this,

  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

Do all question types have to start with ?[sometext], so I can use this regex

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

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

similar to all inputs, my question how can i get the paragraph line text (those are not start with ?[] which may have small/caps/digits include)

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

You can do it like this:

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

^ will get you the start of the line, (?! will look ahead for the ? or [ characters, .+ will match the rest of the characters until \n (Line break) or $ (end of file).

regex101 demo

EDIT

To group all the lines from a paragraph, try this:

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

regex101 demo

about 4 years ago · Santiago Gelvez Relatório

0

here are some key ideas when handling string line detection.

  • some OS and browsers use different line ends.(not just \n. it's sometimes \r or \r\n)
  • ^ does not tell the start of the line. it tells the start of entire string.

use plain .split(). + regex works well in this case. here's a good example that I've found on 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 is hard(dangerous)

Sorry to deviate from regex but I advise you not to implement markdown by scratch. You'll have endless extreme cases. Because,

  • if it acceps a user input, it requires some degree of sanitization.
  • users expectation is always different from your expectation. they'll put so many weird strings to markdown and expect your code to work. battle-tested markdown libs comes handy in this case.
  • customizing a markdown libs can teach you about markdown parsing process.'
  • markdown is also a documented complex standard. follow existing markdown rules before actually start implementing one. are you following Github markdown rules? or are you following Commonmark rules? or maybe something else? and users will also expect your app to follow any of these rules.

Implementing custom markdown it via classic markdown libs such as marked.js might be a better idea. most markdown libs uses internal tokenizer, which handles the regex you've mentioned. a plain text becomes program recognizable data(json, javascript obj) with tokenizers. it is possible to just use internal tokenizers, separate from the actual renderer.

check this lexer(tokenizer) code of marked.js

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda