Removendo parágrafos duplicados com o Edit Pad Pro ou o Notepad ++

0

Eu tenho um arquivo .docx que contém mcqs que estão no formato mostrado abaixo. O problema é que existem muitos mcqs duplicados e, portanto, gostaria de saber se um regex pode ser criado para detectar todos os mcqs duplicados.

Eu tenho o Edit Pad 7, o Notepad ++, o powergrep e o texto sublime. e todo o regex que eu usei até agora excluía duplicatas linha por linha, assim excluindo opções de outras perguntas, mesmo que as perguntas não correspondam.

Então, basicamente, o que estou dizendo é que preciso de um regex que possa excluir todos os mcqs duplicados apenas se o mcq inteiro corresponder, não com linhas ou sentenças individuais.

Eu sou um novato em relação à regex, então, por favor, desculpe qualquer inadequação.

Lichen planus occurs most frequently on the?
A.  buccal mucosa.
B.  tongue.
C.  floor of the mouth.
D.  gingiva.

In the absence of “Hanks balanced salt solution”, what is the most appropriate media to transport an avulsed tooth?
A.  Saliva.
B.  Milk.
C.  Saline.
D.  Tap water.

Which of the following is the most likely cause of osteoporosis, glaucoma, hypertension and peptic ulcers in a 65 year old with Crohn’s disease?
A.  Uncontrolled diabetes.
B.  Systemic corticosteroid therapy.
C.  Chronic renal failure.
D.  Prolonged NSAID therapy.
E.  Malabsorption syndrome.

Lichen planus occurs most frequently on the?
A. buccal mucosa.
B. tongue.
C. floor of the mouth.
D. gingiva.

resultado esperado

Lichen planus occurs most frequently on the?
A.  buccal mucosa.
B.  tongue.
C.  floor of the mouth.
D.  gingiva.

In the absence of “Hanks balanced salt solution”, what is the most appropriate media to transport an avulsed?
A.  Saliva.
B.  Milk.
C.  Saline.
D.  Tap water.

Which of the following is the most likely cause of osteoporosis, glaucoma, hypertension and peptic ulcers in a 65 year old with Crohn’s disease?
A.  Uncontrolled diabetes.
B.  Systemic corticosteroid therapy.
C.  Chronic renal failure.
D.  Prolonged NSAID therapy.
E.  Malabsorption syndrome.
    
por den 10.05.2018 / 18:16

2 respostas

0

  • Ctrl + H
  • Encontre o que: (([^?]+\?\R(?:.+\.\R)+)[\s\S]+?)
  • Substituir por: $1
  • check Embrulhe
  • verificar expressão regular
  • NÃO VERIFIQUE . matches newline
  • Substituir todos

Explicação:

(           : start group 1
  (         : start group 2
    [^?]+   : 1 or more any character that is not "?"
    \?      : a question mark
    \R      : any kind of line break
    (?:     : start non capture group
      .+    : 1 or more any character but newline
      \.    : a dot
      \R    : any kind of line break
    )+      : end group, must appear 1 or more times
  )         : end group 2
  [\s\S]+?  : 1 or more any character, not greedy
)           : end group 1
          : another occurrence of group 2

Substituição:

$1          : content of group 1
    
por 10.05.2018 / 19:45
0

Tecnicamente, na entrada fornecida, não há duplicatas como "A. mucosa bucal ”e“ A. mucosa bucal 'diferem em número de espaços após' A. '

No entanto, a intuição sugere que tais casos devem ser vistos de alguma forma.

Como você mencionou no comentário que está usando o link , usarei esta página para fazer as correspondências e substituições.
Selecionei o sabor: javascript e defina dois sinalizadores na seção de expressões regulares: g (global) es (linha única).

Eu vou usar 3 padrões para lidar com essa string.

O primeiro padrão procura idênticas ocorrências de question_and_answer. Se houver discrepâncias entre eles, eles não serão tratados como duplicados.
Se houver mais de uma duplicata, todas serão capturadas.

(?<=^|\n)([^\n]+)(\n)(\D{1}\.\s+[^^]+?)(\n{2})(?=[^^]*\n)

Entrada (TEST STRING):

Question 1?
A. SomeA1.
B. SomeB1.

Question 1?
A.     SomeA1.
B.     SomeB1.

Question 1?
A. SomeA1.
B. SomeB1.

Saída (SUBSTITUIÇÃO): // uma duplicata removida

Question 1?
A.     SomeA1.
B.     SomeB1.

Question 1?
A. SomeA1.
B. SomeB1.



Sequisermosapenasencontrarduplicatascombasenasperguntas,essepadrãodevefuncionar,masdeveserusadoapenasparafinsinformativos.

(?<=^|\n)([^\n]+)(\n)(\D{1}\.\s+[^^]+?)(\n{2})(?=[^^]*)

Entrada(TESTSTRING):

Question1?A.SomeA1.B.SomeB1.Question1?A.SomeA1.B.SomeB1.Question1?A.SomeA1.B.SomeB1.

Saída(SUBSTITUIÇÃO)://pareceok,maséumtruqueedeveserusadocomcautela

Question1?A.SomeA1.B.SomeB1.



Idealmente,sesoubermosquetipodedesviosencontraremosnosdados,poderemoslimparosdadosantesqueoprimeiropadrãosejaaplicado,comonoexemploaseguir,ondeváriosespaçossãosubstituídosporapenasumespaço.

Localizar:(?<=\n)(\D{1}\.)(\s+)([^^]+?\n)
Substituição:

Entrada(TESTSTRING):

Lichenplanusoccursmostfrequentlyonthe?A.buccalmucosa.B.tongue.C.floorofthemouth.D.gingiva.


Saída(SUBSTITUIÇÃO):

Lichenplanusoccursmostfrequentlyonthe?A.buccalmucosa.B.tongue.C.floorofthemouth.D.gingiva.



    
por 23.05.2018 / 14:20