Regex tricks

From The Jolly Contrarian
Revision as of 22:32, 20 January 2020 by Amwelladmin (talk | contribs)
Jump to navigation Jump to search

Paragraph wrap

Find “paragraph 9(i)(a),” and wrap with prov tag: FInd:

Paragraph ([0-9\(\)][!.,; ]{1,})

Replace:

Paragraph \1

Seach destroy

Convert a fullanat2 into an ISDA anat:

/\{\{fullanat2\|isda\|([^]]*)\|2002\|[^]]*\|1992\}\}/ ==> {{isdaanat|$1}}

Delete a redundant Equity Derivative Nuts:

/\{\{eqderivanat\|([0-9]*.[0-9]*\([a-z]*\))}}/
/\{\{nuts\|Equity Derivatives\|[0-9]*.[0-9]*\([a-z]*\)\}\}/  ==> {{eqderivanat|$1}}

Tagging everything coloured blue

  1. search and destroy
  • double spaces
  • Fields (ctrl-shift-F9)
  • bookmarks - there's a cool macro for this:
Sub RemoveAllBookmarks()

    Dim objBookmark As bookmark

    For Each objBookmark In ActiveDocument.Bookmarks

        objBookmark.Delete

    Next

End Sub
  1. . Clear out all blue dashes - replace them with xxx
  2. . Clear out all blue apostrophes - replace them with yyy
  3. . Clear ot all blue spaces - replace them with qqq (this won't do the ones either side of the blue phrase)
  • Find: ([A-Z][a-z]{1,}) ([A-Z][a-z]{1,}) (use wildcards, font colour: blue)
  • Replace: \1qqq/2
  1. . Now your tags are all continuous blue strings. So brace them:
  • Find: <(?{1,})> (use wildcards, font colour: blue)
  • Replace: {{wikitag|\1}} (font colour blue)

Now restore spaces, apostrophes and dashes.

Mwah.

Indenting wikified autonumbering

  • In a word doc, make all your numbering reveal every level (eg “13(c)(vii)(B)” with the ferocity of a US securities lawyer. you can do this in the “Define Multilevel Lists” dialogue.
  • Copy your whole doc into a text-only email. It will faithfully convert all those numbers to text. You will lose the indenting. We will put it back.
  • Switch on Use wildcards in the replace dialogue.
  • Find: ^13([0-9]{1,}\([a-z,A-Z,0-9]{1,}\)\([a-z,A-Z,0-9]{1,}\)\([a-z,A-Z,0-9]{1,}\))
  • Replace: ^13:::\1

Then

  • Find: ^13([0-9]{1,}\([a-z,A-Z,0-9]{1,}\)\([a-z,A-Z,0-9]{1,}\))
  • Replace: ^13::\1

Then

  • Find: ^13([0-9]{1,}\([a-z,A-Z,0-9]{1,}\))
  • Replace: ^13:\1

Sorted.