User:ArrowHead294/Regex snippets: Difference between revisions

ArrowHead294 (talk | contribs)
mNo edit summary
ArrowHead294 (talk | contribs)
mNo edit summary
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
These are some regular expressions I use for formatting purposes:
<noinclude>These are some regular expressions I use for formatting purposes:
 
</noinclude>
{| class="wikitable" style="text-align: center;"
{| class="wikitable" style="text-align: center;"
|+ style="font-size: 105%;" | {{u|ArrowHead294}}'s regular expressions for formatting Wiki markup
|- style="white-space: nowrap;"
! Pattern
! Replace by
! Purpose
|-
|-
! style="width: 50%;" | Pattern
| <code><nowiki>^(?:\+|-|\x{2212})?(?:(?:\d{1,3}(?:\,\d{3})*|\d+)\.?\d*|\d*\.?\d+)(?:[Ee][+-]?\d+)?$</nowiki></code>
! style="width: 10%;" | Replace by
! style="width: 20%;" | Purpose
|-
| <code><nowiki>^(?:\+|-|\x{2212})?(?:(?:\d{1,3}?(?:\,\d{3})*|\d+)\.?\d*|\d*\.?\d+)(?:[Ee][+-]?\d+)?$</nowiki></code>
| N/A
| N/A
| Match a number
| Match a number
|- style="border-top: double;
|- style="border-top: double;
| <code><nowiki>(?<=\n)(=+)\s*((?:[^\s=]+\s*)+[^\s=])\s*(=+)</nowiki></code><br />or <code><nowiki>(?<=\n)(\=+)\s*((?:[^\s\=]+\s*)+[^\s\=])\s*(\=+)</nowiki></code>
| <code><nowiki>(?<=\n)(=+)\s*([^\|\{\}\r\n=]*?)\s*(=+)(?=\n)</nowiki></code><br />or <code><nowiki>(?<=\n)(\=+)\s*([^\|\{\}\r\n\=]*?)\s*(\=+)(?=\n)</nowiki></code>
| <code>$1 $2 $3</code>
| <code>$1 $2 $3</code>
| Space out equals signs for section headers*
| Space out equals signs for section headers*
|-
|-
| <code><nowiki>(?<=\n)\|\s*(?!-|\{|\})</nowiki></code>
| <code><nowiki>(?<=\n)(\|\+?|!)[^\S\r\n]*\|?[^\S\r\n]*(?!-|\}|\+)</nowiki></code>
| rowspan="2" | <code><nowiki>$1&nbsp;</nowiki></code>
| <code><nowiki>$1&nbsp;</nowiki></code>
| Space out pipe characters and header separators in tables (one cell per line)*
| Space out pipe characters and header separators<br />in tables (one cell per line)<br />Replace <code>!&nbsp;{{pipe}}&nbsp;</code> with <code>!&nbsp;</code> and <code>{{pipe}}&nbsp;{{pipe}}&nbsp;</code> with <code>{{pipe}}&nbsp;</code>
|-
|-
| <code><nowiki>(?<=\n)(\||!)[^\S\r\n]*\|?[^\S\r\n]*(?!-|\})</nowiki></code>
| <code><nowiki>(?<=\{\|.*?\n(?:\|\+.*?\n)?)(?:\|\+\s*\n)?(\||!)(?!-|\}|\+)</nowiki></code>
| Replace <code>!&nbsp;{{pipe}}&nbsp;</code> and <code>{{pipe}}&nbsp;{{pipe}}&nbsp;</code> with <code>!&nbsp;</code> and <code>{{pipe}}&nbsp;</code>, respectively
| <code><nowiki>|-\n$1</nowiki></code>
| Add in <code>{{pipe}}-</code> before first row after caption (not strictly<br />necessary, but including it is good practice)
|-
|-
| <code><nowiki>(?<=\[\[|\|)(\d+[Ll])\s*(\d+[Ss])(?=\]\]])?(?!\s)</nowiki></code>
| <code><nowiki>(?<=(?:\||!).*?)(?<!-)\n+(?!\||!)</nowiki></code>
| <code>&lt;br /&gt;</code>
| Replace linebreaks in cells with <code>&lt;br /&gt;</code>
|-
| <code><nowiki>(\d+[Ll])\s*(\d+[Ss])</nowiki></code>
| <code><nowiki>$1&amp;nbsp;$2</nowiki></code>
| <code><nowiki>$1&amp;nbsp;$2</nowiki></code>
| Make sure ''x''L&nbsp;''y''s notation for MOS scales are non-wrapped
| rowspan="2" | Make sure ''x''L&nbsp;''y''s is non-wrapped
|-
|-
| <code><nowiki>(?<!(?:<(\w+-)*\w+>[^\n]*(?=<\/(\w+-)*\w+>)|\{|\}))[^\S\r\n]*(\|\|\|?|!!!?)[^\S\r\n]*(?!-|[^\n]*<\/(\w+-)*\w+>(?=<(\w+-)*\w+>)|\{|\})</nowiki></code>
| <code><nowiki>(\d+[Ll])\s*(\d+[Mm])\s*(\d+[Ss])</nowiki></code>
| <code><nowiki>&nbsp;$1&nbsp;</nowiki></code>
| <code><nowiki>$1&amp;nbsp;$2&amp;nbsp;$3</nowiki></code>
| Space out pipe characters and header separators in tables (entire row per line)*
|-
| <code><nowiki>(class|colspan|rowspan|id|scope|style)="?(.*?)"?[^\S\r\n]*((?:\||!){1,3})[^\S\r\n]*(.*?)(?=\n)</nowiki></code>
| <code>$1="$2" $3 $4</code>
| rowspan="3" | Space out inline cell separators*
|-
| <code><nowiki>(?<!\n|\{)[^\S\r\n]*(?<!\[\[:?\w+:.*?)((?:\||!){1,3})[^\S\r\n]*(.*?)(?=\n)</nowiki></code>
| <code>&nbsp;$1&nbsp;</code>
|-
| <code><nowiki>(?<=(?:\{\{|\[\[).*?)\s+(\|)\s+</nowiki></code>
| <code>{{pipe}}</code>
|-
| <code><nowiki>(\d+)(?:\s*[Tt][Oo]\s*|-)(\d+)\s*[Cc](?:[Ee][Nn][Tt][Ss]?)?</nowiki></code>
| <code><nowiki>$1–$2{{c}}</nowiki></code>
|
|-
| <code><nowiki>(?<=\n)((?:\*|:)+)\s*</nowiki></code>
| <code><nowiki>$1&nbsp;</nowiki></code>
| Space out asterisks, number signs, and colons for lists
|-
|-
| <code><nowiki><math>,*\s*\\frac(\d)(\d),*\s*<\/math></nowiki></code>
| <code><nowiki><math>,*\s*\\frac(\d)(\d),*\s*<\/math></nowiki></code>
| <code><nowiki>{{frac|$1|$2}}</nowiki></code> or<br /><code><nowiki>{{sfrac|$1|$2}}</nowiki></code>
| <code><nowiki>{{frac|$1|$2}}</nowiki></code> or<br /><code><nowiki>{{sfrac|$1|$2}}</nowiki></code>
| Standalone fractions with single-digit numerators and denominators can be done using {{tlx|frac}} or {{tlx|sfrac}} and don't need to be TeXified
| Standalone fractions with single-digit numerators<br />and denominators don't need to be TeXified
|-
| <code><nowiki>(.*?)\s*:\s*(.*?);</nowiki></code>
| <code><nowiki>| $1 = $2</nowiki></code>
| Change to new comment format when migrating from<br /><code>{{<nowiki />Scale tree}}</code> to <code>{{<nowiki />MOS tuning spectrum}}</code>
|}
|}
<nowiki />* Requires support for variable-width lookaheads and lookbehinds
<nowiki />* Requires support for variable-width lookaheads and lookbehinds<noinclude>


== See also ==
== See also ==
Line 40: Line 67:


[[Category:Regular expressions]]
[[Category:Regular expressions]]
</noinclude>