Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 10th, 2012  |  syntax: Lisp  |  size: 1.39 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. ;;;; deduplicate.el
  2.  
  3. ;; perlgex is
  4. ;; (\d+\.*\n*)([^\d]*\n)+
  5. ;; elisp is
  6. ;; "(\\d+\\.*\\n*)([^\\d]*\\n)+"
  7.  
  8. (defun deduplicate (unit-count)
  9.   "Remove UNIT-COUNT duplicate headings"
  10.   (interactive)
  11.   (let ((x 1))
  12.     (while (<= x unit-count)
  13.       (re-search-forward
  14.        ;; using Perl regexp for convenience
  15.        (rxt-pcre-to-elisp (concat "(" (number-to-string x) "\\.*\\n*)([^\\d]*\\n)+")) nil t)
  16.       (replace-match "")
  17.        (incf x))))
  18.  
  19. ;; Test the code with
  20.  
  21. (deduplicate 2)
  22.  
  23. ;; Test case
  24.  
  25. 1.
  26.  
  27.  
  28. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec
  29. hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam
  30. nisl, tincidunt et, mattis eget, convallis nec, purus.
  31.  
  32.  
  33.  
  34. 2.
  35.  
  36. Cum sociis natoque penatibus et magnis dis parturient montes,
  37. nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam
  38. tristique diam non turpis. Cras placerat accumsan nulla. Nullam
  39. rutrum. Nam vestibulum accumsan nisl.
  40.  
  41.  
  42.  
  43. 1.
  44.  
  45.  
  46. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec
  47. hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam
  48. nisl, tincidunt et, mattis eget, convallis nec, purus.
  49.  
  50.  
  51.  
  52. 2.
  53.  
  54. Cum sociis natoque penatibus et magnis dis parturient montes,
  55. nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam
  56. tristique diam non turpis. Cras placerat accumsan nulla. Nullam
  57. rutrum. Nam vestibulum accumsan nisl.