www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenFormale SprachenRegular Expressions
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Formale Sprachen" - Regular Expressions
Regular Expressions < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Regular Expressions: RegEx Konstruktion
Status: (Frage) beantwortet Status 
Datum: 23:36 Do 29.11.2012
Autor: steffl

Aufgabe
Das Alphabet sei {a,b}. Erstelle einen (möglichst einfachen) regulären Ausdruck, der genau jene Wörter matcht, in denen keine zwei aufeinanderfolgende Buchstaben gleich sind.
gematcht: a; abab, babab; (leere Eingabe)
nicht gematcht: aa; bb; abba; bbaa
Expressions:
. (ein Punkt) matcht genau ein beliebiges Zeichen.
+ (ein Plus) bedeutet, dass der Ausdruck davor beliebig oft (mindestens
einmal) auftritt.
*bedeutet, dass der Ausdruck davor beliebig oft (eventuell 0-mal) auftritt.
? bedeutet, dass der Ausdruck davor höchstens 1-mal (eventuell 0-mal) auftritt.
| bedeutet, dass entweder der Teil links oder der Teil rechts auftritt

Hallo.
Ich rätsel schon ziemlich lange an der oben angeführten Aufgabe herum. Hatte zuerst folgende lösung:
a?b(ab)*|b?a(ba)*  hab dann aber gesehen dass das nicht gehen kann. Auch ab(ab)*|ba(ba)* geht nicht da ja auch der ausdruck a als gemacht gilt. Hat irgendjemand einen tipp?
Lg

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Regular Expressions: Antwort
Status: (Antwort) fertig Status 
Datum: 18:36 Fr 30.11.2012
Autor: Anna-Lyse

Hallo steffl,

der Ansatz

> a?b(ab)*|b?a(ba)*

geht ja schon mal prinzipiell in die richtige Richtung - nur ist hier ein | noch nicht einmal notwendig. Also wenn Du jetzt einen von Deinen beiden Dir dort gedachten Ausdrücken nimmst, z.B.

> a?b(ab)*

wie könnte man diesen Ausdruck verändert, dass er passend ist? Mit dem "?"-Ausdruck bist Du schon auf dem richtigen Weg, nun überlege mal, was Du da "bauen" müsstest, wenn Du als Kern (ab)* lässt. Hilft Dir das weiter?

Gruß
Anna

Bezug
                
Bezug
Regular Expressions: RegEx Konstruktion
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 01:34 Sa 01.12.2012
Autor: steffl

Hallo anna
Danke einmal für deine antwort. Es immer gut zu wissen, dass man auf den richtigen weg ist. Ich hätte zum beispiel gar nicht gedacht, dass ich das | zeichen gar nicht brauche. Was mir noch probleme bereitet ist das auch gar keine eingabe als gematcht gilt. Somit können also keine einzelnen buchstaben ohne zeichen vorkommen.
Meine lösung war nun: a?(ba)*b? wobei der ja wieder nicht geht da auch babba gematch wird....
Eine andere lösung, einfach a?(ba)* geht auch nicht da wenn nur b die eingabe ist, es auch nicht gematcht wird...
Ich schaffe es einfach nicht, dass alle ausdrücke gematcht werden. Über einen weiteren tipp wäre ich sehr dankbar :)

Bezug
                        
Bezug
Regular Expressions: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:49 Di 04.12.2012
Autor: ursular

Wieso matched a?(ba)*b? denn babba.
Ich habe damit nicht viel Erfahrung aber das wäre auch meine Lösung gewesen.


Ohje, bin neu in diesem Forum. Ich hab den anderen Zweig der Antwort gar nicht gesehen. Tschuldigung.

Bezug
                                
Bezug
Regular Expressions: Antwort
Status: (Antwort) fertig Status 
Datum: 21:46 Mi 05.12.2012
Autor: Anna-Lyse

Hallo ursular,

> Wieso matched a?(ba)*b? denn babba.
>  Ich habe damit nicht viel Erfahrung aber das wäre auch
> meine Lösung gewesen.

Ist ja auch richtig :-)

Gruß
Anna

Bezug
        
Bezug
Regular Expressions: Antwort
Status: (Antwort) fertig Status 
Datum: 11:56 Sa 01.12.2012
Autor: Anna-Lyse

Hallo steffl,

Du bist doch schon ganz nahe dran... :-)

> Eine andere lösung, einfach a?(ba)* geht auch nicht da wenn nur b die eingabe ist, es auch nicht gematcht wird...

Wo könnte man denn hier noch ein einzelnes b in den Ausdruck einbringen? Und schon hast Du es.... mit "a?" hast Du das doch schon gut erkannt. Wo also b hin? ;-)

WOBEI - ich sehe gerade... Du hast es doch schon:

>Meine lösung war nun: a?(ba)*b?
[ok]

> wobei der ja wieder nicht geht da auch babba gematch wird

Wieso sollte babba matchen? Vergesse nicht, Du hast a?(ba)*b? und nicht (a?(ba)*b?)*

Gruß
Anna

Bezug
                
Bezug
Regular Expressions: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:13 Sa 01.12.2012
Autor: steffl

Hallo anna.

>  Wieso sollte babba matchen? Vergesse nicht, Du hast
> a?(ba)*b? und nicht (a?(ba)*b?)*

Ahhhhhh aja stimmt, ich habe (a?(ba)*b?)* angenommen.
Danke für die hilfe ich hätte da sonst noch ewig herumgetan ;)

Lg

Bezug
                        
Bezug
Regular Expressions: RegEx Konstruktion, Aufgabe2
Status: (Frage) beantwortet Status 
Datum: 13:55 Sa 01.12.2012
Autor: steffl

Aufgabe
Das Alphabet sei {a,b,c}. Gib einen (möglichst einfachen) regulären Ausdruck an, der genau jene Wörter matcht, für die folgendes gilt:
• Kommt der String aa vor, so kommt auch der String cc vor.
Gematcht: abba; bccb; bccaa; (leere eingabe)
Nicht gematcht: aa; abaaba; baaa, cac

Bei der dieser Aufgabe bin ich mir auch nicht sicher.
Ich habe folgende Lösung bekommen:

a?(b?c?)*(ccaa|aacc)?

Geht das so? Sorry für die weitere Frage aber ich bin leider noch nicht sehr geübt mit dem Ungang von Regular Expressions....



Bezug
                                
Bezug
Regular Expressions: Antwort
Status: (Antwort) fertig Status 
Datum: 14:36 Sa 01.12.2012
Autor: Anna-Lyse

Hallo steffl,

> Das Alphabet sei {a,b,c}. Gib einen (möglichst einfachen)
> regulären Ausdruck an, der genau jene Wörter matcht, für
> die folgendes gilt:
> • Kommt der String aa vor, so kommt auch der String cc
> vor.
> Gematcht: abba; bccb; bccaa; (leere eingabe)
>  Nicht gematcht: aa; abaaba; baaa, cac
>  Bei der dieser Aufgabe bin ich mir auch nicht sicher.

>  Ich habe folgende Lösung bekommen:
>
> a?(b?c?)*(ccaa|aacc)?

Meinst Du denn, dass z.B. das Wort bbba ein Wort ist, das gematcht sein sollte?
Und wenn ja - passt Dein reg. Ausdruck dazu?

Ich würde mir an Deiner Stelle zuerst einmal Gedanken machen, welche Wörter das sind, die die Bedingung erfüllen. Ein paar Beispiele wurden Dir ja gegeben - aber das sind natürlich nicht alle. Ist denn z.B. gesagt, dass auf dem doppelten "A" direkt das doppelte "C" folgen muss bzw. umgekehrt? Oder ist nur gesagt, dass - falls aa vorkommt - auch cc vorkommen muss - UNABHÄNGIG ihrer Positionen im String?

Gruß
Anna

Bezug
                                        
Bezug
Regular Expressions: RegEx Konstruktion, Aufgabe2
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:28 Sa 01.12.2012
Autor: steffl

Hallo anna.
Danke für dein geduld.

> Meinst Du denn, dass z.B. das Wort bbba ein Wort ist, das
> gematcht sein sollte?
>  Und wenn ja - passt Dein reg. Ausdruck dazu?

Ja der soll auch gemacht werden, sowie wie auch zum Beispiel abba (laut angabe). Nein der passt dann nicht dazu :) Aber der ausdruck a?(b?c?)a? sollte gehen.

> Ist denn z.B. gesagt, dass
> auf dem doppelten "A" direkt das doppelte "C" folgen muss
> bzw. umgekehrt? Oder ist nur gesagt, dass - falls aa
> vorkommt - auch cc vorkommen muss - UNABHÄNGIG ihrer
> Positionen im String?

In der Angabe sind nur beispiele wo das aa dem cc folgt oder umgekehrt, deswegen bin ich davon ausgegangen, dass es so sein muss. Aber wie soll es sonst gehen? Da ja eine leere eingabe als gematcht gilt, dürfen somit keine einzelnen buchstaben (also ohne * ? ) vorkommen. Somit kann aa auch nur mit ? *  vorkommen; und sie können nicht mehr unabhängig voneinander auftreten (wie weiß ich dass dann aa schon aufgetreten ist?)

Lg





Bezug
                                
Bezug
Regular Expressions: Antwort
Status: (Antwort) fertig Status 
Datum: 22:23 Mo 03.12.2012
Autor: Anna-Lyse

Hallo steffl,

>  Danke für dein geduld.

Kein Problem :) War länger nicht hier - hast Du denn mittlerweile die Lösung bzw. noch Interesse an weiterer Hilfe bzw. hast Du noch Fragen?

> > Meinst Du denn, dass z.B. das Wort bbba ein Wort ist, das
> > gematcht sein sollte?
>  >  Und wenn ja - passt Dein reg. Ausdruck dazu?
>  
> Ja der soll auch gemacht werden, sowie wie auch zum
> Beispiel abba (laut angabe). Nein der passt dann nicht dazu
> :) Aber der ausdruck a?(b?c?)a? sollte gehen.

Bzgl. was sollte dieser Ausdruck gehen?
  

> > Ist denn z.B. gesagt, dass
> > auf dem doppelten "A" direkt das doppelte "C" folgen muss
> > bzw. umgekehrt? Oder ist nur gesagt, dass - falls aa
> > vorkommt - auch cc vorkommen muss - UNABHÄNGIG ihrer
> > Positionen im String?
>  
> In der Angabe sind nur beispiele wo das aa dem cc folgt
> oder umgekehrt, deswegen bin ich davon ausgegangen, dass es
> so sein muss.

Aber die Aufgabenstellung sagt doch klar:

> Kommt der String aa vor, so kommt auch der String cc vor.

und nicht:
"Kommt der String aa vor, so folgt darauf der String cc".
Oder?

> Aber wie soll es sonst gehen? Da ja eine
> leere eingabe als gematcht gilt, dürfen somit keine
> einzelnen buchstaben (also ohne * ? ) vorkommen. Somit kann

Genau - zumindest, wenn man es ohne | realisieren würde - aber ob das möglich wäre? ;)

> aa auch nur mit ? *  vorkommen; und sie können nicht mehr

Ja? Oder würde es auch anders gehen, z.B. indem Du diesmal ein | mit einbaust?

> unabhängig voneinander auftreten (wie weiß ich dass dann
> aa schon aufgetreten ist?)

Du musst halt aa und cc definitiv reinbringen.... Zusammen als Tipp mit dem | hilft Dir das vielleicht schon...
  
Gruß
Anna

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]