Wikipedia:AutoWikiBrowser/Settings/Dab cleanup

wikipedia

en

http://

All disambiguation pages

CategoryListProvider

true

false

false

true

false

Notes

OnWholePage

- Rules with * in the name use templates or parser functions. Rules with ** use substitution.

- Rules with (if) in the name have search strings on the "If" tab.

--------

Optimization:

- Instead of ( *.+), use (.+) (MUCH faster)

- To IGNORE matches found BETWEEN strings OPEN and CLOSE:

match(?![^OC]*(?!OPEN)[^OC]*CLOSE) (faster than neg lookbehind)

false

false

1

None

None

true

true

true

Insert missing line break between entries

OnWholePage

(^\*+ *.*)(\*+ *.*)

$1

$2

true

false

1

None

None

true

No double spaces or tabs

OnWholePage

(?<=[^\s-])( | ){2,}(?=[^\s-])

true

false

1

None

None

VISIBLE WHITESPACE (placeholder)

OnWholePage

false

false

1

None

None

true

true

Double newline between sections (NEW)

OnWholePage

(?<=[^=}\n])\n(?==[=]+)

\n\n

true

false

1

None

None

INVISIBLE WHITESPACE (placeholder)

OnWholePage

false

false

1

None

None

true

true

"may refer to" 1

OnWholePage

(?<=^[^\*].*)(?<!(commonly|mainly|(most )?often|ordinarily|primarily|principally|typically|usually) )((?<also1>(also )?)(?<= )(may|can|could|might|is) (?<also2>(also )?)(be used to )?(?<= )(refer to|be|mean)|(?<also1>(also )?)(?<= )(refers to|is|means))( (any|one|any one|several|multiple|either))?( of)?( (a number of|the following|these))?( [\w ]+)?:? *\n

may ${also1}${also2}refer to:\n

true

false

1

None

IgnoreCase Multiline

true

"may refer to" 2

OnWholePage

(has|(may|can) have) (several |many )?(different |alternat(iv)?e )?meanings\.?(, including)?:?

may refer to:

true

false

1

None

None

true

Drop "The word(s)"**

OnWholePage

The (expression|phrase|term|title|word)(s)? '''(?<q>['"]*)(?<first>\w)(?!['"]* may refer)

'''${q}{{subst:uc:${first}}}

true

false

1

None

None

true

Add missing intro**

OnWholePage

^\s*([=;\*].*)

{{subst:PAGENAMEBASE}} may refer to:\n\n$1

true

false

1

None

None

true

Rm NOTOC

OnWholePage

(__|\{\{)NO( )?TOC(__|\}\})\n

true

false

1

None

IgnoreCase

true

Remove some dicdefs (NEW)

OnWholePage

^[^\[\]\n]* (is|are|means|is a(n)? .*(word|noun|(ad)?verb|adjective) (meaning|(often )?translated as)) [^\[\]\n]*\.\n

true

false

1

None

Multiline

true

(if) wikt before intro (NEW)

OnWholePage

(?<intro>^'''.+)\n+(?<wikt>\{\{[Ww]ikt(ionary)?[^\{\}\n]*\}\})

${wikt}\n${intro}

\{\{[Ww]ikt

true

false

1

None

Multiline Singleline

INTRO (placeholder)**

OnWholePage

false

false

1

None

None

true

true

(if) Comment out refs (revised)

OnWholePage

(?<ref>\<[Rr]ef( +[\w ]+=[\w '"]+ *)*(\>[^\<\>]*\</[Rr]ef\>|/\>))(?![^\<\>]*(?!\<!--)[^\<\>]*--\>)

<!--${ref}-->

<[Rr]ef

true

true

1

None

None

true

(if) Comment ext links outside refs (revised)

OnWholePage

(?<link>\[?http[s]?://[^\s\[\]]+(?<display> [^\[\]]+(?=\]))?\]?)(?![^\<\>]*(?!\<[Rr]ef[^\<\>]*\>)[^\<\>]*\</ref\>)(?![^\<\>]*(?!\<!--)[^\<\>]*--\>)

<!--${link}-->

http[s]?://

true

true

1

None

None

true

Fix wikilinks+templates (SLOW?)

OnWholePage

(?<![\[\{])(?<open>[\[\{]){2,3}(?<content>[^\[\]\}\}]*)(?<close>[\]\}]){1,3}(?![\]\}])

${open}${open}${content}${close}${close}

true

false

1

None

Multiline

true

Un-nest nested comments

OnWholePage

(\<!--[^\>]*)\<!--([^\>]*)--\>([^\>]*--\>)

$1$2$3

true

false

2

None

Multiline

true

false

false

but don't duplicate

OnWholePage

(?<existing>\{\{(([Tt][Oo][Cc]|[Cc]ontents)( float)?[- ]?([Rr]ight|RIGHT)|[Rr]ightTOC)\}\}) *\n*\{\{TOC right\}\}

${existing}

true

false

1

None

Singleline

+{{tocright}} if 4+ headers*

OnWholePage

^(?<pre>[^=]*)(?=(?<!\{\{([Tt][Oo][Cc][ _-]?(float)?[ _-]?[Rr](ight|IGHT)|[Cc]ontents[ _]right|[Rr]ightTOC)\}\}\n+)=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*)

${pre}{{TOC right}}\n

==

true

false

1

None

Singleline

Rm <references/> & {{reflist}}

OnWholePage

\n(<[Rr]eferences[ ]*/>[\n]+|\{\{([Rr]ef|[Nn]ote)list(\|[^\}]*)?\}\}\n)$

true

false

1

None

Multiline

true

Rm uncommented ref cleanup tags

OnWholePage

(?:<!--[.\n]*-->)*(?<!\<!--[^\{]*){{([Rr]eferences|([Aa]d[d]?|[Bb]ad|[Cc]ite|[Cc]leanup|[Ff]ew|[Ii]mprove|[Mm]issing|[Mm]ore|[Nn]eeds( additional|more)?|[Nn]o[t]?|[Uu]n)(-| )?(cit|r|source|verif)[^\}]*|[Nn][Rr]|([Rr]ef(erence)?|[Cc]itation)[s]?[ ]?(needed|missing)?|[Rr]efim[^\}]*|[Ss]ources|[Rr]ip|\+[Rr])}}[\n]*

true

false

1

None

None

REFS/COMMENTS (placeholder)*

OnWholePage

false

false

1

None

None

true

No bold after lead

OnWholePage

(?<=^[\*=].*)(.*)

$1

true

false

3

None

Multiline

true

Indent with bullets

OnWholePage

(?<=^:*):(?=/*)

*

true

false

1

None

Multiline

true

true

Rm linkless non-parent entries

OnWholePage

^(?<stars>\*+) *[^\[\]\{\}\n]*(?!: *)$\n(?!\k<stars>\*)

true

false

1

None

Multiline

true

Add colon to linkless parent entries

OnWholePage

(?<=^\n*\*+ *)(?<text>[^\[\]\{\}\n:]+[^ :]) *(?=$\n\*+)

${text}:

true

false

1

None

Multiline

If linkless entries: (SLOW)

OnWholePage

^\*+ *[^\[\]\{\}\n]*$(?![^\<\>]*(?#Unless commented:)(?!\<!--)[^\<\>]*--\>)

true

true

1

Multiline Singleline

None

true

true

true

Except for known abbreviations

OnWholePage

(?<!\[\^\*(?!\]\][^\[]*))(?<abbrev> (etc|al|[Ii]nc|[Ll]td|[Cc]o|[JS]r|[Pp]lc))(?!\.)(?=\W*\n)

${abbrev}.

true

false

1

None

None

(if) Rm end punctuation (SLOW?)

OnWholePage

(?<=^\*+ *)(?<text>.*[^\.\n\s]{2,})(?:\.|;|,)(?<peren>\)?) *(?=\n+)

${text}${peren}

[\.;,]\)? *\n

true

true

1

None

Multiline

true

Cupola/punc to comma (RECENT CHANGE)

OnWholePage

(?<=\*+ *)(?<term>[^,\n]+[^,\n\-–—:; ]|[^,\n]*\[\[.+\]\](|[^,\n]*?[^,\n\-–—:; ]))(?#unless term is in quotes, parens, or a link:)(?![^'"\n]*(?!")[^'"\n]*"|[^'"\n]*(?!)[^'"\n]*|[^\(\)\n]*(?!\()[^\(\)\n]+\)|[^\[\]\n]*(?!\[\[)[^\[\]\n]+\]\])(, which)?((?<!that) (is|are|was|were) | *([\–—]+|(?<!\!)--(?!\>)) *| *[:;\-] +(?=\w)|(?<=\]\]|\}\}) (?=(a|an|the) ))

${term},

true

false

1

None

None

true

Comma to semicolon in "; see x"

OnWholePage

(?<=\*+ *(?![Ff]or )[^\n]*) *(\-\-|[,;:\-–—\.]) *([Ff]or more information[,;:])? ?([Ss]ee|[Cc]f[\.]?)( also)?(?![^\<\>\!]*(?!\<!--)[^\<\>\!]*--\>)

; see

true

false

1

None

Multiline

PUNCTUATION (placeholder)

OnWholePage

false

false

1

None

None

true

true

"formerly"

OnWholePage

((which was )?formerly|which used to be)

formerly

false

false

1

None

None

true

Remove extra sentences (EXPERIMENTAL)

OnWholePage

(?<=\*+ *.*?\w{3})\. +(?<extra_sentences>\p{Lu}.*)(?=\n)

true

false

1

None

None

SHORTEN DESCRIPTIONS (placeholder)

OnWholePage

false

false

1

None

None

true

true

fti based on link**

OnWholePage

(?<=^\*+ *)(|")?\[\[(?<link>(?<main>[^\|\]]*) \((?<dabber>([^\|\]]* )?(album|book|collection|comic|EP|film|game|LP|manga|movie|musical|novel|periodical|play|(television|[Tt]\.?[Vv]\.?) program(me)?|series|show|telenovela|(?<!\w)work))\))(?!\|\k<main> \(\k<dabber>\))(\|[^\]]+)?\]\](|")?

{{subst:fti|${link}}}

true

false

1

None

Multiline

true

ftq based on link**

OnWholePage

(?<=^\*+ *)(|")?\[\[(?<link>(?<main>[^\|\]]*) \((?<dabber>[^\|\]]*(?<=\W)(episode|single|song|story|track))\))(?!\|"\k<main>" \(\k<dabber>\))(\|[^\]]+)?\]\](|")?

{{subst:ftq|${link}}}

true

false

1

None

Multiline

true

fti based on description (intricate)**

OnWholePage

(?<=\*+ *)(|")?(?<!)((?<islinked>\[)\[)?(?<target>[^\[\|\]\n'" ][^\[\|\]\n]*?)(?!\|[^\[\|\]\n]+)(\]\])?(''|")?(?<to_noun>, (a(n(other)?)? )?(\d{3,4} )?([\w-]+ ?){0,5} (?<!((class|kind|sort|type|variety|composer|critic|developer|director|distributor|editor|executive|host|illustrator|narrator|presenter|producer|publisher|star|writer) of( .*)?|.* (by|from|(with)?in|of|on) .*))(album|biopic|book|chronicle|comedy|documentary|drama|EP|film|franchise|board[ \-]?game|genus|LP|magazine|movie|mural|newspaper|novel(ette|la)?|painting|(?<!(who|that|which) )play|(?<!trade|air|to )show|soundtrack|genus|(television|[Tt]\.?[Vv]\.?) (program(me)?|series)|thriller|western|(?<!t)work))(?!\w)(?!.*(?<!.*(by|featuring|including|starring).*)(act(or|ress)|anchor|camera|channel|character|comedi(an|enne)|company|composer|critic|developer|director|distributor|editor|executive|festival|film(maker|ographer)|host|illustrator|industry|narrator|organi[sz]ation|personality|presenter|producer|publisher|retailer|seller|service|star|station|store|superhero|system|theat(er|re)|tournament|vendor|writer))

{{subst:fti|${target}|nolink={{subst:#if:${islinked}|0|1}}}}${to_noun}

true

false

1

None

None

true

fti for species likely in Latin** (NEW)

OnWholePage

(?<=\*+ *)(|")?(?<!)((?<islinked>\[)\[)?(?<target>\p{Lu}\.? [^\[\|\]\n]+)(?!\|[^\[\|\]\n]+)(\]\])?(''|")?(?<to_noun>, (a(n(other)?)? )?(\d{3,4} )?([\w-]+ ?){0,5}species(?!\w))

{{subst:fti|${target}|nolink={{subst:#if:${islinked}|0|1}}}}${to_noun}

true

false

1

None

None

true

(if) ftq based on description** (intricate)

OnWholePage

(?<=\*+ *)(|")?(?<!")((?<islinked>\[)\[)?(?<target>[^\[\|\]\n'" ][^\[\|\]\n]*?)(\]\])?(|")?(?<to_noun>, (a(n(other)?)? )?(\d{3,4} )?([\w-]+ ?){0,5}(?<!((class|kind|sort|type|variety|composer|director|host|illustrator|lyricist|narrator|producer|star|writer) of( .*)?|.* (from|in) .*))(?<!(,)? (and|or|based on|featuring) ([\w-]+ )+)(.* (episode|finale)|(episode|finale) of.*(show|series|television|[Tt]\.?[Tv]\.?|.*)|poem|single.*(album|record(?!s)|EP|LP)|(?<!album and )song(?! and album)| story(?! arc)|(?<!sound)track(?!e).*(album|record[^s]|EP|LP))(?=\s))(?! ((act(or|ress)|anthology|comedi(an|enne)|collection|composer|director|host|illustrator|lyricist|narrator|producer|star|writer)))

{{subst:ftq|${target}|nolink={{subst:#if:${islinked}|0|1}}}}${to_noun}

(episode|finale|poem|single|song|story|track)

true

true

1

None

Multiline

true

ftqi based on description** (intricate)

OnWholePage

(?<=\*+ *)["']*((?<islinked>\[)\[)?(?<episode>\p{Lu}[^\|\]]+) \((?<series>\p{Lu}[^\|\]]+)\)(\]\])?["']*(?=, (a(n(other)?)? )?(\d{3,4} )?([\w-]+ ?){0,5}episode of (the (television |[Tt]\.?[Vv]\.? )?(program(me)?|series|show) )?["'\[]*\k<series>["'\[]*)

{{subst:ftqi|${episode} (${series})|nolink={{subst:#if:${islinked}|0|1}}}}

true

false

1

None

None

LINK FORMATTING (placeholder)**

OnWholePage

false

false

1

None

None

true

Use ship prefix templates*

OnWholePage

\[\[(?<prefix>(AN|BN|EN|FN|G|GT|H|HDM|HM|HMA|HMB|HMC|HMNZ|HMQ|HMV|HNLM|HNoM|HSwM|HTM|IN|J|JD|M|NN|P|RM|ROK|RP|RS|S|SA|SM|US|USN|)S|BAP|BRP|HMT|HSC|Jsub|KRI|LÉ|MY|ORP|RFAux|RV|SMU|SV|TCG|USAT|USCGC|USRC) (?<name>[^\|\[\]\(\)]*)( \((?<code>[^\|\[\]\(\)]*)\))?(\|[^\|\]\n']+)?\]\]

{{${prefix}|${name}|${code}}}

true

false

1

None

None

true

true

true

Remove any "a/an/the" before type

OnWholePage

\(([Tt]he|[Aa]n?) (?<type>.*(callsign|code|designator|symbol|prefix|postfix|identifier|abbreviation))

(${type}

true

false

1

None

None

false

Language and country codes lowercase and in quotes*

OnWholePage

(?<=\(.*(ISO 639(-\d( and -\d)?)?|language|country).*(code|identifier)s? )(?<code>\{\{subst:uc:\{\{subst:PAGENAMEBASE\}\}\}\})(?=\))

"{{subst:lc:{{PAGENAMEBASE}}}}"

true

false

1

None

None

false

Substitute page name and case modifier

OnWholePage

(?<=\{\{)(?<template>uc:|lc:|PAGENAMEBASE)

subst:${template}

true

false

1

None

None

CODE entries - move target to start and...**

OnWholePage

(?<=^\*+ *)((?<code>[^,\s]*), )?(?:[Tt]he|[Aa]n)? ?(?<type>(\[\[|\{\{)?([^,\n]* )?(acronym|callsign|code(name)?|designator|symbol|prefix|postfix|identifier|abbreviation)s?(\]\]|\}\})?) (?:for|of) (?:the )?(?<item>[^\n]*[^\s])(\s)?$

${item} (${type} {{subst:#if:${code}|"${code}"|{{subst:#ifeq:${type}|abbreviation|"{{subst:PAGENAMEBASE}}"|{{subst:uc:{{subst:PAGENAMEBASE}}}}}}}})

true

false

1

None

Multiline

true

Alternate name - move target to start (NEW)**

OnWholePage

(?<=\*+ *)[Aa]n(other)?( alternat(?<iv>iv)?e)? (?<noun>name|title|designator|code) for (?<target>.*)

${target}, alternat${iv}ely called {{subst:uc:{{subst:PAGENAMEBASE}}}})

true

false

1

None

None

true

"from work" before "by [artist]" (NEW)

OnWholePage

(?<=\*+.+)((?<by>by .*[^, ]),? (?<ident>[Aa]n? .*[^, ]),?|(?<ident>[Aa] (song|poem|single|(short )?story|track)),? (?<by>by .*[^, ]),?) from (?<pospron>his|her|their)? ?(the )?(?<work>.*\[\[.*\]\].*)

${ident} from {{subst:if:${pospron}|the |}}${work}, ${by}

true

false

1

None

None

true

"[artist]'s work" to "work by [artist]" (NEW)

OnWholePage

(?<=\*+.+)from (?<artist>.*)'s (?<work>.*\[\[.+\]\].*)

from the ${work} by ${artist}

true

false

1

None

None

true

"In [field], item" to "Item, in [field]" (NEW)

OnWholePage

(?<=\*+ *)[Ii]n (?<field>[^,\n]*), (?<entry>\[\[[^\]\n]*\]\]) (is|are|was|were)

${entry}, in ${field},

true

false

1

None

None

WORD ORDER (placeholder)**

OnWholePage

false

false

1

None

None

true

Don't pipe away disambiguators

OnWholePage

(?<=\*+ *)\[\[(?<base>[^\]\|\)\n]+) (?<dabber>\([^\]\|\n]+\)) *\| *\k<base>\]\]

${base} ${dabber}

true

false

1

None

IgnoreCase

true

true

Remove extraneous bold

OnWholePage

(==[^\n']*)'''([^\n']*==)

$1$2

true

false

1

None

None

Pseudo-headers to real headers**

OnWholePage

(?#Negative lookbehind here to ignore multiline comments made rule run very slowly)(?<=(?<parentlevel>(?<=\n=)=+).*?\n|^(?<parentlevel>)([^=]?[^\n]*\n)*?)(?!\<!--)(; ?|(In (the )?)?'*|)(?<title>[^\*;'\n=\{ ][^\n]*[^\n=':;\.\-–— ])(?<! (refer(s)? to|include(s)?|mean(s)?|is|are|was|were)(?!\w)[^\n]*)('{2,5})?[:;\-–— ]*('{2,5})?(?=(\n\(.*\))*\n+\*)

==${parentlevel}{{subst:ucfirst:${title}}}${parentlevel}==

true

false

1

None

Singleline

true

true

Abbreviate US (except in links and headers)

OnWholePage

(?<!==.*)((?<U>U\.?)(?<S>S\.?)A\.?|(?<U>United )(?<S>States)( of America)|(?<U>U)nited (?<S>S)tates(?! v.))(?![^\[\]]*(?!\[\[)[^\[\]]*\]\])

${U}${S}

true

false

29

None

None

true

Abbreviate UK (except in links and headers)

OnWholePage

(?<!==.*)((?<U>U)\.(?<K>K)\.?|(?<U>U)nited (?<K>K)ingdom(?! of))(?![^\[\]]*(?!\[\[)[^\[\]]*\]\])

${U}${K}

true

false

1

None

None

true

Replace c. in vital years w/tooltip template

OnWholePage

(?<=[\(\-–—] ?)(\[\[circa\|)?(c|ca|circa|~|approx(imately)?)\.?(\]\])?(?= ?\d)

{{circa}}

true

false

1

None

None

true

Replace fl. in vital years w/tooltip template

OnWholePage

(?<=\( ?)(\[\[floruit\|)?(fl|flr|flor)\.?(\]\])?(?= ?\d)

{{floruit}}

true

false

1

None

None

COMMON ABBREVIATIONS (placeholder)

OnWholePage

false

false

1

None

None

true

true

LC certain words at start of description (NEW)

OnWholePage

(?<=, )(A|An|The)(?= )(?![^\[\]]*(?!\[\[)[^\[\]]*\]\])

{{subst:lcfirst:$1}}

true

false

1

None

None

true

UC first letter of first word of entry**

OnWholePage

(?<=^[=;\*]+ *)(\[\[([^\n\|\]]*\|)?)?(?<letter>\p{Ll})(?!(?#punct)[.,;:\*]|(?#single letter not a)(?<!a) |(?#French)(?<=[dl])'|(?#Arabic)(?<=a)l[- ]|(?#Greek)(?<=[αβγδεζηθικλμνξοπρσςτυφχψω]).|(?#hidden)[^\n\|\[\]]*\|)

$1{{subst:uc:${letter}}}

true

false

1

None

Multiline

CAPITALIZATION (placeholder)

OnWholePage

false

false

1

None

None

true

true

(if) Unlink third+ links in entry**

OnWholePage

(?<=\*+ *.*[^\[\{\n]*)(?<link1>\[\[(?<target1>[^\|\]]+)(\|[^\]]*)?\]\]|\{\{(?<template1>(AN|BN|EN|FN|G|GT|H|HDM|HM|HMA|HMB|HMC|HMNZ|HMQ|HMV|HNLM|HNoM|HSwM|HTM|IN|J|JD|M|NN|P|RM|ROK|RP|RS|S|SA|SM|US|USN|)S|BAP|BRP|HMT|HSC|Jsub|KRI|LÉ|MY|ORP|RFAux|RV|SMU|SV|TCG|USAT|USCGC|USRC)\|(?<target1>[^\}]+)\}\})(?<inter>[^\[\n]*)(?<![Ss]ee |\<!--(?!.*--\>.*).*)(?<link2>\[\[(?<target2>[^\|\]]+\|)?(?<display2>[^\]]*)\]\]|\{\{(?<template2>(AN|BN|EN|FN|G|GT|H|HDM|HM|HMA|HMB|HMC|HMNZ|HMQ|HMV|HNLM|HNoM|HSwM|HTM|IN|J|JD|M|NN|P|RM|ROK|RP|RS|S|SA|SM|US|USN|)S|BAP|BRP|HMT|HSC|Jsub|KRI|LÉ|MY|ORP|RFAux|RV|SMU|SV|TCG|USAT|USCGC|USRC)\|(?<target2>[^\}]+)\}\})(?!\<!--[acceptable|OK|keep link].*--\>)(?<rest>[^\n]*)

${link1}${inter}{{subst:#ifexist:${template1} ${target1}|{{subst:trim|1=${template2} ${display2}}}|${link2}<!--keep link only if first link red-->}}${rest}

(?<=\*+ *.*[^\[\{\n]*)(\[\[|\{\{)[^\[\{\n]+\[\[[^\[\{\n]+(\[\[|\{\{)

true

true

4

None

None

(if) Unlink 2nd link in entry (intricate)**

OnWholePage

(?<=\*+ *.*[^\[\{\n]*)(?<link1>\[\[(?<target1>[^\|\]]+)(\|[^\]]*)?\]\]|\{\{(?<template1>(AN|BN|EN|FN|G|GT|H|HDM|HM|HMA|HMB|HMC|HMNZ|HMQ|HMV|HNLM|HNoM|HSwM|HTM|IN|J|JD|M|NN|P|RM|ROK|RP|RS|S|SA|SM|US|USN|)S|BAP|BRP|HMT|HSC|Jsub|KRI|LÉ|MY|ORP|RFAux|RV|SMU|SV|TCG|USAT|USCGC|USRC)\|(?<target1>[^\}]+)\}\})(?<inter>[^\[\n]*)(?<![Ss]ee |\<!--(?!.*--\>.*).*)(?<link2>\[\[(?<target2>[^\|\]]+\|)?(?<display2>[^\]]*)\]\](?<suffix2>\w*)|\{\{(?<template2>(AN|BN|EN|FN|G|GT|H|HDM|HM|HMA|HMB|HMC|HMNZ|HMQ|HMV|HNLM|HNoM|HSwM|HTM|IN|J|JD|M|NN|P|RM|ROK|RP|RS|S|SA|SM|US|USN|)S|BAP|BRP|HMT|HSC|Jsub|KRI|LÉ|MY|ORP|RFAux|RV|SMU|SV|TCG|USAT|USCGC|USRC)\|(?<display2>[^\}]+)\}\})(?!\<!--.*[acceptable|ok|OK|keep|second|link].*--\>)(?<rest>[^\n]*)

${link1}${inter}{{subst:#ifexist:${template1} ${target1}|{{subst:trim|1=${template2} ${display2}${suffix2}}}|${link2}<!--keep link only if first link red-->}}${rest}

(?<=\*+ *.*[^\[\{\n]*)(\[\[|\{\{)[^\[\{\n]+(\[\[|\{\{)

true

true

1

None

Multiline

false

false

(if) Unlink third+ links in entry**

OnWholePage

(?<=\*+ *.*[^\[\{\n]*)(?<link1>\[\[(?<target1>[^\|\]]+)(\|[^\]]*)?\]\]|\{\{(?<ship_type1>[\p{L}/]{2,6})\|(?<target1>[^\}]+)\}\})(?<inter>[^\[\n]*)(?<![Ss]ee |\<!--(?!.*--\>.*).*)(?<link2>\[\[(?<target2>[^\|\]]+\|)?(?<display2>[^\]]*)\]\]|\{\{(?<ship_type2>[\p{L}/]{2,6})\|(?<target2>[^\}]+)\}\})(?!\<!--[acceptable|OK|keep link].*--\>)

${link1}${inter}{{subst:#ifexist:${ship_type1} ${target1}|{{subst:trim|1=${ship_type2} ${display2}}}|${link2}<!--keep link only if first link red-->}}

(?<=\*+ *.*[^\[\{\n]*)(\[\[|\{\{)[^\[\{\n]+\[\[[^\[\{\n]+(\[\[|\{\{)

true

true

4

None

None

(if) Unlink 2nd link in entry (simplified)**

OnWholePage

(?<=\*+ *.*[^\[\{\n]*)(?<link1>\[\[(?<target1>[^\|\]]+)(\|[^\]]*)?\]\]|\{\{(?<ship_type1>[\p{L}/]{2,6})\|(?<target1>[^\}]+)\}\})(?<inter>[^\[\n]*)(?<![Ss]ee |\<!--(?!.*--\>.*).*)(?<link2>\[\[(?<target2>[^\|\]]+\|)?(?<display2>[^\]]*)\]\]|\{\{(?<ship_type2>[\p{L}/]{2,6})\|(?<target2>[^\}]+)\}\})(?!\<!--[acceptable|OK|keep link|2nd|second].*--\>)

${link1}${inter}{{subst:#ifexist:${ship_type1} ${target1}|{{subst:trim|1=${ship_type2} ${display2}}}|${link2}<!--keep link only if first link red-->}}

(?<=\*+ *.*[^\[\{\n]*)(\[\[|\{\{)[^\[\{\n]+(\[\[|\{\{)

true

true

1

None

Multiline

true

true

(if) 30+ entries in a row**

OnWholePage

(?<=\{\{[Dd]isambiguation cleanup.*)\}\}\<

|mosdab=H}}<

(?<!=* *[Ss]ee also ?:? *=*\n+)(\*+.*\n){30,}

true

true

1

None

None

(if) 13+ entries in a row*

OnWholePage

(?<=\n+)(\n\{\{[Dd](ab|big|is(am)?(b)?(ig)?(uation)?( page)?(?<tags>(\|[^\|]+)*)\}\})|(?<specialtag>\n{\{([Hh]n|[Gg]eo)dis[\|]?[^\}]*\}\}))(?![^\n])

${specialtag}\n{{disambiguation cleanup${tags}|date={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}}<!--May require further organization; see WP:LONGDAB-->

(?<!=* *[Ss]ee also ?:? *=*\n+)(\*+.*\n){13,}

true

true

1

None

IgnoreCase

true

true

true

but don't duplicate

OnWholePage

(?<existing>\{\{(([Tt][Oo][Cc]|[Cc]ontents)( float)?[- ]?([Rr]ight|RIGHT)|[Rr]ightTOC)\}\}) *\n*\{\{TOC right\}\}

${existing}

true

false

1

None

Singleline

+{{tocright}} if 4+ headers*

OnWholePage

^(?<pre>[^=]*)(?=(?<!\{\{([Tt][Oo][Cc][ _-]?(float)?[ _-]?[Rr](ight|IGHT)|[Cc]ontents[ _]right|[Rr]ightTOC)\}\}\n+)=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*=[=]+.*)

${pre}{{TOC right}}\n

true

false

1

None

Singleline

true

No TOC after first header (NEW 22-01-05)

OnWholePage

(?<=(=[=]+.*=[=]+.*))\{\{([Tt][Oo][Cc][ _-]?(float)?[ _-]?[Rr](ight|IGHT)|[Cc]ontents[ _]right|[Rr]ightTOC)\}\}\n

true

false

1

None

Singleline

true

Remove empty sections

OnWholePage

(==+).*\1\s*\n(?=\1(?!=)|\{\{.*\}\}(?!\s*\n\*))

true

false

1

None

None

true

Rm ==References==, ==Notes==, and ==External links==

OnWholePage

^(=+|;) *([Rr]eference|[Nn]ote|([Ee]xternal )?[Ll]ink)[s]? *=*\n*$

true

false

1

None

Multiline

true

true

If no other sections, remove ==Other uses==

OnWholePage

(?<!==.*==.*)(== *Other uses *==\n)

true

false

1

None

Singleline

true

true

Merge multiple "Other uses" sections

OnWholePage

(?<=== *[Oo]ther( [Uu]ses)? *==\n*)(?<entries>(\n\*+ *[^\n]+)+)\n*== *[Oo]ther( [Uu]ses)? *==\n*

${entries}\n

true

false

1

None

Singleline

true

Delete "Other uses" header if first section

OnWholePage

(?<!.*==.*)== *[Oo]ther( [Uu]ses)? *==\n

true

false

1

None

Singleline

(if) L2 orphans to "other uses"

OnWholePage

(?<!.*==.*)\n*(?<orphans>(\*+ *[^\n]+\n)+)\n*(?<regular_sections>(\{\{.*\}\})?(\n*==+ *(?! *(\{\{subst:ucfirst:)?([Ss]ee|[Pp]eople))[^\n]+ *==+\n*(\n\*+ *[^\n]+)*)+?\n)\n*(?<people_see_also>(\n*== *(\{\{subst:ucfirst:)?([Ss]ee [Aa]lso|[Pp]eople[ \w\}]*) *==\n*(\n\*+ *[^\n]+)+)+\n){0,2}(?=\n*\{\{.*[Dd](AB|ab|big|is(am(b(ig(uation( page)?)?)?)?)?||))

\n\n${regular_sections}\n==Other uses==\n${orphans}\n\n${people_see_also}

{{hndis

true

false

1

None

Singleline

true

(if) L3+ orphans to OU in section*

OnWholePage

(?<parent>(?<halfhead>={2,})(?<headname>[^=\n]+)\k<halfhead>\n+)(?<orphans>(\*+.+\n)+)\n*(?<subsections>(\n*\k<halfhead>=[^=\n]+=\k<halfhead>\n+(^\*+.+$\n)+)+)(?=\n*(\k<halfhead>[^=]|\{\{))

${parent}\n${subsections}\n${halfhead}=Other {{subst:#ifeq:${headname}|Places||uses in }}{{subst:lc:${headname}}}=${halfhead}\n${orphans}

===

true

false

1

None

Multiline

true

(if) Add header on hndis orphans (original)

OnWholePage

(?<!.*==.*)\n*(?<orphans>\*+.+)\n*(?<regular_sections>(\{\{.*\}\})?(\n*== *(?! *([Ss]ee|[Pp]eople))[^\n]+ *==\n*(\n\*+ *[^\n]+)+)+?\n)\n*(?<people_see_also>(\n*== *([Ss]ee [Aa]lso|[Pp]eople[ \w]*) *==\n*(\n\*+ *[^\n]+)+)+\n){0,2}(?=\n*\{\{.*[Dd](AB|ab|big|is(am(b(ig(uation( page)?)?)?)?)?||))

\n\n==People==\n${orphans}${regular_sections}\n\n${people_see_also}

{{hndis

true

false

1

None

Singleline

false

(if) Add header on hndis orphans (simpler)

OnWholePage

(?<!==.*)(?<orphans>\*+.+)\n*(?===(?! *[Ss]ee| *[Pp]eople))

==People==\n${orphans}

{{hndis

true

false

1

None

Singleline

true

Merge multiple "Other uses" sections

OnWholePage

(?<=== *[Oo]ther( [Uu]ses)? *==\n*)(?<entries>(\n\*+ *[^\n]+)+)\n*== *[Oo]ther( [Uu]ses)? *==\n*

${entries}\n

true

false

1

None

Singleline

true

Delete "Other uses" header if first section

OnWholePage

(?<!.*==.*)== *[Oo]ther( [Uu]ses)? *==\n

true

false

1

None

Singleline

MANAGE ORPHANS AND OUs (placeholder)

OnWholePage

false

false

1

None

None

true

Format ==See also==

OnWholePage

\n+[=\*;]{0,6}(?<space> ?)([Ss]ee )?[Aa]lso\W{0,6}\n+

\n\n==${space}See also${space}==\n

true

false

1

None

None

true

true

"Other USES (in)"

OnWholePage

(?<=[;=])Other ?(thing|item|entr(y|ies)|article|page|topic)?s?(?<dab> in .*)(?=[:=\n])

Other uses${dab}

true

false

1

None

Multiline

true

Standardize "Places" section name

OnWholePage

(?<===+ *)(Geography|Localities)(?= *==+)

Places

true

false

1

None

None

true

Rename culture sections

OnWholePage

(?<===+ *)(In )?([Pp]opular )?([Cc]ulture|[Ss]ociety)(?= *==+)

Arts and media

true

false

1

None

None

true

Avoid "print"

OnWholePage

(?<===+ *)Print(ed)?( media)?(?= *==+)

Literature

true

false

1

None

None

STANDARDIZE SECTION NAMES (placeholder)

OnWholePage

false

false

1

None

None

If sections are present:*

OnWholePage

==

false

false

1

None

None

true

No triple newlines

OnWholePage

\n{3,}

\n\n

true

false

1

None

None

If page is a dab:

OnWholePage

\{\{(d(ab|big|isam)|[^\[\]\{\}\|]{1,30}d(ab|big|is(?!t))|personal name|dmbox)

false

true

1

IgnoreCase

None

false

false

Sandbox

OnWholePage

false

false

1

None

None

false

(if) Only two entries (NEW)

OnWholePage

(?<=\n+)(\n\{\{[Dd](ab|big|is(am)?(b)?(ig)?(uation)?( page)?\}\})|(?<specialtag>\n{\{([Hh]n|[Gg]eo)dis[\|]?[^\}]*\}\}))(?![^\n])

${specialtag}\n{{disambiguation cleanup|date={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}|mosdab=F}}<!--Only two entries; if one is primary, consider redirecting and leaving a hatnote per WP:TWODABS-->

(?<=^[^\*]*)\*+ *.*\n\*+ *.*(?=[^\*]*$)

true

true

1

None

None

false

Don't lead with a/an/the (too broad)

OnWholePage

(?<=\*+ *)(([Aa]n?|[Tt]he) )

true

false

1

None

None

false

ENTRY ORDER (IN PROGRESS - DOABLE?)

OnWholePage

\* *['"]*(\[\[([^\]\|]*\|)?)?(\{\{([^\}\|]*\|)?)?(?<name>.*)

{{subst:#ifeq:${name}|{{subst:PAGENAMEBASE}}||}}

true

false

1

None

None

false

Make regex readable

OnWholePage

(?<groupcode>(?<!\\)(\((?!\?)|\(\?(\:|\<?[=!]|\<[^\>]*?\>))|(?<!\\)\||(?<!\\)\)([\*\+\?]|\{[\d,]+\})?)

\n${groupcode}\n

true

false

1

None

None

SANDBOX (placeholder)

OnWholePage

false

false

1

None

None

false

true

false

false

false

false

0

0

false

false

false

false

false

true

2

10

0

false

false

false

30

Dab cleanup+style sync per WP:DDD etc.

Dab cleanup+style sync per WP:DDD etc.

<!--second link ok-->

dababy

false

false

true

false

true

false

false

true

true

false

true

false

false

false

0

false

true

2

false

true

false

true

false

true

false

false

10

Courier New

false

false

false

false

false

true

false

false

false

false

true

true

true

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

true

false

false

true

false

false

true

true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

true

false

false

false

false

C# 3.5

public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)

{

Skip = false;

Summary = "test";

ArticleText = "test \r\n\r\n" + ArticleText;

return ArticleText;

}

false

false

true

false

20

true

true

false

false

false

0

0

0

0