User:ArrowHead294/Regex snippets: Difference between revisions
ArrowHead294 (talk | contribs) mNo edit summary |
ArrowHead294 (talk | contribs) mNo edit summary |
||
(34 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 | ! Pattern | ||
! Replace by | ! Replace by | ||
! Purpose | ! Purpose | ||
|- | |- | ||
| <code><nowiki>^(?:\+|-|\x{2212})?(?:(?:\d{1,3} | | <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*([^\|\{\}\r\n]*)\s*(=+)</nowiki></code><br />or <code><nowiki>(?<=\n)(\=+)\s*([^\|\{\}\r\n\]*)\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\r\n]*\|?[^\S\r\n]*(?!-|\}|\+)</nowiki></code> | | <code><nowiki>(?<=\n)(\|\+?|!)[^\S\r\n]*\|?[^\S\r\n]*(?!-|\}|\+)</nowiki></code> | ||
| <code><nowiki>$1 </nowiki></code> | | <code><nowiki>$1 </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>! {{pipe}} </code> with <code>! </code> and <code>{{pipe}} {{pipe}} </code> with <code>{{pipe}} </code> | ||
|- | |||
| <code><nowiki>(?<=\{\|.*?\n(?:\|\+.*?\n)?)(?:\|\+\s*\n)?(\||!)(?!-|\}|\+)</nowiki></code> | |||
| <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>(?<=(?:\||!).*?)(?<!-)\n+(?!\||!)</nowiki></code> | |||
| <code><br /></code> | |||
| Replace linebreaks in cells with <code><br /></code> | |||
|- | |- | ||
| <code><nowiki>(\d+[Ll])\s*(\d+[Ss])</nowiki></code> | | <code><nowiki>(\d+[Ll])\s*(\d+[Ss])</nowiki></code> | ||
| <code><nowiki>$1&nbsp;$2</nowiki></code> | | <code><nowiki>$1&nbsp;$2</nowiki></code> | ||
| rowspan="2" | Make sure ''x''L ''y''s | | rowspan="2" | Make sure ''x''L ''y''s is non-wrapped | ||
|- | |- | ||
| <code><nowiki>(\d+[Ll])\s*(\d+[Mm])\s*(\d+[Ss])</nowiki></code> | | <code><nowiki>(\d+[Ll])\s*(\d+[Mm])\s*(\d+[Ss])</nowiki></code> | ||
| <code><nowiki>$1&nbsp;$2&nbsp;$3</nowiki></code> | | <code><nowiki>$1&nbsp;$2&nbsp;$3</nowiki></code> | ||
|- | |- | ||
| <code><nowiki>( | | <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> $1 </code> | | <code> $1 </code> | ||
| Space out | |- | ||
| <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 </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 | | 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 44: | Line 67: | ||
[[Category:Regular expressions]] | [[Category:Regular expressions]] | ||
</noinclude> |