User:ArrowHead294/Regex snippets

From Xenharmonic Wiki
Jump to navigation Jump to search

These are some regular expressions I use for formatting purposes:

ArrowHead294's regular expressions for formatting Wiki markup
Pattern Replace by Purpose
^(?:\+|-|\x{2212})?(?:(?:\d{1,3}(?:\,\d{3})*|\d+)\.?\d*|\d*\.?\d+)(?:[Ee][+-]?\d+)?$ N/A Match a number
(?<=\n)(=+)\s*([^\|\{\}\r\n=]*?)\s*(=+)(?=\n)
or (?<=\n)(\=+)\s*([^\|\{\}\r\n\=]*?)\s*(\=+)(?=\n)
$1 $2 $3 Space out equals signs for section headers*
(?<=\n)(\|\+?|!)[^\S\r\n]*\|?[^\S\r\n]*(?!-|\}|\+) $1  Space out pipe characters and header separators
in tables (one cell per line)
Replace ! |  with and | |  with
(?<=\{\|.*?\n)(?<!\|-\n)(\||!) |-\n$1 Insert table cell separator at top of table before
first headers
(\d+[Ll])\s*(\d+[Ss]) $1&nbsp;$2 Make sure xys is non-wrapped
(\d+[Ll])\s*(\d+[Mm])\s*(\d+[Ss]) $1&nbsp;$2&nbsp;$3
(?<=(?:class|colspan|rowspan|id|scope|style)="?.*?"?)[^\S\r\n]*(?<!\w+)((?:\||!){1,3})[^\S\r\n]*  $1  Space out inline cell separators*
(?<!\n|\{)[^\S\r\n]*(?<!\[\[:?\w+:.*?)((?:\||!){1,3})[^\S\r\n]*
(?<=\n)((?:\*|:)+)\s* $1  Space out asterisks, number signs, and colons for lists
(?<=\{\|.*?\n(?:\|\+.*?\n)?)(\||!)(?!-|\}|\+) |-\n$1 Add in |- before first row after caption (not strictly
necessary, but including it is good practice)
<math>,*\s*\\frac(\d)(\d),*\s*<\/math> {{frac|$1|$2}} or
{{sfrac|$1|$2}}
Standalone fractions with single-digit numerators
and denominators don't need to be TeXified

* Requires support for variable-width lookaheads and lookbehinds

See also