Bei der Verwendung einheitlicher Formatierungsregeln von Literaturangaben können die einzelnen Bestandteile mittels eines Parsers automatisch ermittelt werden.
Zunächst werden Leerzeichen normalisiert.
Die einzelnen Tokens sind folgende
<nowiki> SP => "[ \t]*", LINK => "\\[\\[[^\\]]+\\]\\]" # (§10) TODO: add in parser or lexer # Verfasser (§1) NAME => "([^(,]+", JOB => "[(][^)]+[)]", ETAL => "et al[.]", # Titel (§2) TITLE => "''([^']|'[^'])+''[.]?", # don't be pedantic: dot at the end may be omitted # "In:" (§3) IN => "[Ii]n:", # Datum (§4) # $rEtwa = "(um\s+|ca[.]?[ ]+|etwa[ ]+)" # $rDay = "(([1-9]|[12][0-9]|30|31)[.])" # $rMonth = "(Jan|Januar|Feb|Februar|März|Maerz|....)" # $rYear = ... # $rOJahr = "o[.]\s*J(ahr|.)?\s*" DATUM => "($rEtwa?$rDay?[ ]*$rMonth[ ]*$rYear" # noch unvollständig # Auflage (§5) AUFLAGE => "[1-9][0-9]*[.]\s+Aufl([.]|age)" # Verlag und Ort (§6) ORT => "[^/,]+(/[^/,])*(\s*\\[u[.]A[.]\\])?" VERLAG => "[^,]+" # Fortlaufende Werke (§7) ... # Seitenzahl (§8) SEITEN => "S[.][ ]+[0-9]+(ff?[.]?|[-–][ ]+[0-9]+)?" <nowiki>