Zu regulären Ausdrücken allgemein siehe Regulärer Ausdruck.

Von den verschiedenen Systemen mit untereinander etwas abweichender Syntax verwendet der AWB fast ausschließlich das von .NET definierte.

Suchausdrücke (Pattern)

Bearbeiten
Code Anmerkungen
^ allgemein: Beginn einer Zeichenkette beim AWB: Erstes Zeichen einer Seite
\A allgemein: Beginn einer Zeichenkette beim AWB: Erstes Zeichen einer Seite
$ allgemein: Ende einer Zeichenkette beim AWB: Letztes Zeichen einer Seite
\Z allgemein: Ende einer Zeichenkette beim AWB: Letztes Zeichen einer Seite
\b am Wortanfang an Buchstabe, Zahl oder Unterstrich
\B nicht am Wortanfang nicht an Buchstabe, Zahl oder Unterstrich

Zeichenklassen

Bearbeiten
Klasse Beschreibung Beispiel
\s sogen. "Whitespace" (Leerzeichen) (Tabulator) (Neuzeile) (Umbruch)
\S Jedes "Nicht-Whitespace" abcxyz_ABCXYZ$?!#%*@&;:.,+-=^"/<{[(~0123789 (u.s.w.)
\w Jedes Wortzeichen (Buchstaben, Ziffern, Unterstrich) abcdefghijklmnopqstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789_
\W Jedes Nicht-Wortzeichen $?!#%*@&;:.,+-±=^"`\|/<>{}[]()~(Whitespace)
\d Jede Dezimalziffer 0123456789
\D Jedes andere Zeichen außer einer Dezimalziffer abcxyz_ABCXYZ$?!#%*@&;:.,+-=^"/<{[(~(Whitespace) (u.s.w.)
\x Jede Hexadezimalziffer 0123456789abcdefABCDEF
\0 Jede Oktalziffer 01234567
\p{L} Alle Unicodebuchstaben AaÃãÂâĂăÄäÅå (u.s.w.)
\p{Ll} All Unicode-Kleinbuchstaben aãâăäå (u.s.w.)
\p{Lu} All Unicode-Großbuchstaben AÃÂĂÄÅ (u.s.w.)
\t Steuerzeichen: horiz. Tabulator ASCII-Code 0x09
\n Steuerzeichen: Zeilenumbruch ASCII-Code 0x0A
\r Steuerzeichen: Wagenrücklaufzeichen ASCII-Code 0x0D
\c jedwedes Kontrollzeichen Ctrl-A bis Ctrl-Z ASCII-Code 0x01 bis 0x1A

Quantifizierer

Bearbeiten

Quantifizierer geben an, wie oft eine Angabe davor auftauchen muss

Klasse Beschreibung Beispiel
{n} genau n-mal {3} ⇒ genau dreimal
{n,} mind. n-mal {3,} ⇒ mindestens dreimal
{n,m} n- bis m-mal {2,4} ⇒ zwei- bis viermal
* keinmal oder öfters entspricht {0,}
+ mindestens einmal entspricht {1,}
? keinmal oder einmal entspricht {0,1}

Aufhebungszeichen (Escape)

Bearbeiten
Code Beschreibung Beispiel
\ Hebt die Wirkung des nachfolgenden Sonderzeichens auf Sonderzeichen: =^{}[]#!/%&_:;.<>

Beispiele

Bearbeiten
Sonderzeichen Sonderzeichen aufgehoben
^ \^
$ \$
( \(
) \)
< \<
. \.
* \*
+ \+
? \?
[ \[
] \]
{ \{
\ \\
| \|
> \>

Gruppierungen und Bereiche

Bearbeiten

Bereiche sind Inklusivangaben.

Code Beschreibung Anmerkung
. Jedes Zeichen außer Zeilenumbruch
| Alternative. Findet entweder die linke oder die rechte Seite ab|cd|ef ⇒ ab oder cd oder ef
[…] Menge einzelner Zeichen [def]d oder e oder f
[^…] Ausschlussmenge einzelner Zeichen (inkl. Neuzeile) [^abc] ⇒ nicht a oder b oder c
[a-q] Kleinbuchstabe zwischen a und q Bereich von Kleinbuchstaben, hier z. B. a bis q.
[A-Q] Großbuchstabe zwischen A und Q Bereich von Großbuchstaben, hier z. B. A und Q
[0-7] Ziffer zwischen 0 und 7 Zifferbereich, [0-9] entspricht \d
(…) Gruppiert und markiert alles zwischen den Klammern (Markierung). Kann beim Ersetzen referenziert werden. (abc) findet und markiert abc
(?<name>…) gibt einer Markierung einen Namen (?<Jahr>2016) markiert 2016 mit dem Namen Jahr.
(?:…) Nicht-markierte Gruppe. Findet eine Gruppe, markiert diese aber nicht für eine Referenz (?:abc) findet abc ohne Markierung für eine Referenz
…(?=…) Positive Vorausschau. Findet einen Ausdruck nur, wenn ein anderer folgt. abc(?=xyz) findet abc nur wenn xyz folgt.
(?!…) Negative Vorausschau. Findet einen Ausdruck nur, wenn ein anderer nicht folgt. abc(?=xyz) findet abc nur wenn xyz nicht folgt.
…(?<=…) Positive Rückchau. Findet einen Ausdruck nur, wenn ein anderer davorliegt. (?<=xyz)abc findet abc nur, wenn xyz davor ist.
…(?<=…) Negative Rückchau. Findet einen Ausdruck nur, wenn ein anderer nicht davorliegt. (?<=xyz)abc findet abc nur, wenn xyz nicht davor ist.
(?#…) Kommentar (?#Dies ist nur ein Kommentar)

Ersetzungsausdrücke

Bearbeiten

Die im Suchausdruck erfolgten Markierungen können im Ersetzungsausdruck referenziert werden. andere angaben werden direkt eingefügt.

Mit $1, $2, $3 … können die Markierungen in der Reihenfolge ihren Auftretens referenziert werden. Mit ${text} kann eine mit text benannte Markierung referenziert werden. Soll unmittelbar nach einer Referenz eine Ziffer folgen, so wird das mit geschweifter Klammer erreicht:

Code Bedeutung
(Anton) (Peter) (Otto) $1 referenziert Anton, $2 referenziert Peter und $3 referenziert Otto
(A) (B) (C) (D) (E) (F) (G) (H) (I) (J) $10 ergibt J
(A) (B) (C) (D) (E) (F) (G) (H) (I) (J) ${1}0 ergibt A0

Beispiele

Bearbeiten

Suchausdrücke

Bearbeiten
Ausdruck findet
([A-Za-z0-9-]+) ein- oder mehrmals Zeichen, welche buchstaben, Ziffern oder Minuszeichen sind.
(\d{1,2}\/\d{1,2}\/\d{4}) Datum wie z. B. 3/24/2008 oder 03/24/2008 oder 24/03/2008
\[\[\d{4}\]\] Vierziffriger Wikilink (also einen Jahresartikel), z. B. [[2008]]
(Jan(?:uar|\.|)|Feb(?:ruar|\.|)|Mär(?:z|\.|)
|Apr(?:il|\.|)|Mai\.?|Jun(?:i|\.|)|Jul(?:i|\.|)
|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.?|)
|Okt(?:ober|\.|)|Nov(?:ember|\.|)|Dez(?:ember|\.|))
Voller oder abgekürzter Monatsname
(\[\[([0-9]{1,2}\. (Januar|Februar|März
|April|Mai|Juni|Juli|August|September
|Oktober|November|Dezember))\]\]
Link auf Tagesartikel von [[1. Januar]] bis [[31. Dezember]]
\[\[([1-9][0-9]{0,3} v\. Chr\.)\]\] Link auf Jahresartikel v. Chr.

Tipps und Tricks

Bearbeiten

Einfache Suche

Bearbeiten
Finde Artikel, Titel beginnt mit "A"
Regex: ^A
Finde Diskussionsseiten, Titel beginnt mit "B"
Regex: ^Talk:B

Verwendung von Vorrausschau und Rückschau

Bearbeiten
Finde [Url] und [Url Titel]
Regex:   \[*((?:\w+:)?\/\/[^<>\[\]\s"]+) *([^\n\]]+(?=\])|)\]+\s*
$1 enthält die Url.
$2 enthält den Titel ohne nachfolgendes ] or es ist leer

Spezielles

Bearbeiten
Finde in <ref></ref>
Regex: <ref[^>]*>([^<]|<[^/]|</[^r]|</r[^e]|</re[^f]|</ref[^>])+</ref>
Finde in <ref></ref> bei Verwendung einer (?! nicht finden) Notation
Regex: <ref[^>]*>([^<]|<(?!/ref>))+</ref>
Finde eine Vorlage{{...}} evtl. mit vorlagen darin, aber keine vorlagen darin:
Regex: \{\{([^{]|\{[^{]|\{\{[^{}]+\}\})+\}\}

normales Suchen

Bearbeiten
Finde Wörter und Leerzeichen
Regex: [\w\s]+
Finde Nicht-Wiki-Text
Regex: [^][{}|<>']+
Finde geklammerte URLs
Regex: \[(https?://[^][<>\s"]+) *((?<= )[^\n\]]*|)\]