Thread RegEx: großes, umfangreiches Problem
(18 answers)
Opened by pktm at 2003-08-17 18:54
nein, beide falsch :) ich lasse euch aber diesmal nicht zappeln. hehe :p
reguläre ausdrücke sind eine "schwächere" form von grammatiken. wenn du z.b. sagst: Quote dann ist /^[ab]{1,3}$/ die beschreibung einer einfachen sprache - sie enthält genau folgende elemente: { "a", "b", "aa", "ab", "ba", "ab", "aaa", "aab", "aba", "ab", "baa", "bab", "bba", "bbb" } das wird bei sogar bei einfachen regulären ausdrücken schnell recht komplex. der reguläre ausdruck kann in einer grammatik dargestellt werden: start: a_oder_b a_oder_b? a_oder_b? a_oder_b: "a" | "b" (genauso lesen wie oben beschrieben) probiert es doch einfach mal aus. flux das modul Parse::RecDescent installieren und folgendes programm ausführen: Code: (dl
)
1 use strict; warum das fragezeichen beim parser-aufruf? aufgrund der arbeitsweise des parsers. damit kennzeichne ich das ende des wortes. genauso könnte oben beschriebene grammatik als regulärer ausdruck dienen (das überlasse ich dem geneigten leser ;) ), denn das format von pktm enthält keine "rekursive struktur" (oh je, mir wird schlecht...). => für $grammar oben kann genauso eine menge gebaut werden, und diese umfasst u.a. auch die von pktm geposteten beispiele (got it?) am besten mal ne vorlesung über formale sprachen an der nächsten $uni besuchen :) SirLant, natürliche sprachen sind die kompliziertesten sprachen überhaupt. die oben beschriebenen sprachen sind von der struktur gesehen sehr einfach. bei natürlichen sprachen gibt es so was wie nebensätze mit all ihren spielarten, numerus und kasus, modus etc. etc. etc. so jetzt ist aber wirklich schluss. genug unsinn verzapft. :) -- stefan
|