www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

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
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Formale Sprachen" - RegEx für gerade Zahlen
RegEx für gerade Zahlen < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

RegEx für gerade Zahlen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:15 Mo 03.11.2008
Autor: Steffi1988

Aufgabe
Gesucht ist ein regulärer Ausdruck, der alle geraden natürlichen Zahlen in Dezimaldarstellung akzeptiert. Geben Sie weiter einen regulären Ausdruck an, der eine gerade Anzahl von Zeichenketten akzeptiert, die nur aus den Buchstaben x,y,z besteht.

Hallo ihr Lieben!

sitze grade mal wieder an einer Aufgabe vom Informatikblatt und komme einfach nicht wirklich weiter. Also ich habe schon ein paar Ansätze.. erstmal bin möchte ich mir einen RegEx erstellen, welcher nur gerade Zahlen akzeptiert, da habe ich mir folgendes überlegt:

([1-9][0-9]*(0|2|4|6|8)|(0|2|4|6|8))

Der sollte auch soweit klappen (habs per RegEx online Tester ausprobiert, der Teil vor dem ODER operator erfasst alle gerade Zahlen die größer-gleich 10 sind und der danach akzeptiert alle geraden Zahlen die kleiner 10 sind (also nur 0,2,4,6,8)..

Nun will ich mir einen RegEx bauen, der alle Zeichenketten akzeptiert, welche nur aus x,y,z bestehen und eine gerade Anzahl von eben diesen Zeichen haben. Dafür benutze ich die Wiederholungsoperatoren {}, also folgendes:

(x|y|z){([1-9][0-9]*(0|2|4|6|8)|(0|2|4|6|8))}

Die Klammer gibt jeweils x,y,z zurück und das genau so oft, wie in den geschweiften Klammern angegeben ist (also eine gerade Anzahl!). Leider klappt dieser Ausdruck nicht, bekomme immer nur einen Fehler zurück wenn ich den Ausdruck ausprobiere.

Was mache ich nur falsch? Ich hoffe ihr könnt mir helfen.

Liebe Grüße
Steffi

        
Bezug
RegEx für gerade Zahlen: Antwort
Status: (Antwort) fertig Status 
Datum: 13:44 Mo 03.11.2008
Autor: Bastiane

Hallo Steffi1988!

> Gesucht ist ein regulärer Ausdruck, der alle geraden
> natürlichen Zahlen in Dezimaldarstellung akzeptiert. Geben
> Sie weiter einen regulären Ausdruck an, der eine gerade
> Anzahl von Zeichenketten akzeptiert, die nur aus den
> Buchstaben x,y,z besteht.
>  Hallo ihr Lieben!
>  
> sitze grade mal wieder an einer Aufgabe vom Informatikblatt
> und komme einfach nicht wirklich weiter. Also ich habe
> schon ein paar Ansätze.. erstmal bin möchte ich mir einen
> RegEx erstellen, welcher nur gerade Zahlen akzeptiert, da
> habe ich mir folgendes überlegt:
>  
> ([1-9][0-9]*(0|2|4|6|8)|(0|2|4|6|8))
>  
> Der sollte auch soweit klappen (habs per RegEx online
> Tester ausprobiert, der Teil vor dem ODER operator erfasst
> alle gerade Zahlen die größer-gleich 10 sind und der danach
> akzeptiert alle geraden Zahlen die kleiner 10 sind (also
> nur 0,2,4,6,8)..

[daumenhoch]

> Nun will ich mir einen RegEx bauen, der alle Zeichenketten
> akzeptiert, welche nur aus x,y,z bestehen und eine gerade
> Anzahl von eben diesen Zeichen haben. Dafür benutze ich die
> Wiederholungsoperatoren {}, also folgendes:
>  
> (x|y|z){([1-9][0-9]*(0|2|4|6|8)|(0|2|4|6|8))}
>  
> Die Klammer gibt jeweils x,y,z zurück und das genau so oft,
> wie in den geschweiften Klammern angegeben ist (also eine
> gerade Anzahl!). Leider klappt dieser Ausdruck nicht,
> bekomme immer nur einen Fehler zurück wenn ich den Ausdruck
> ausprobiere.

Solch ein Wiederholungsoperator ist mir neu, ich würde das folgendermaßen machen:

[mm] (xx|xy|xz|yx|yy|yz|zx|zy|zz)^{\star} [/mm]

Bin mir auf die Schnelle nicht 100pro sicher, ob das alle Möglichkeiten abdeckt, aber notfalls kann man sich für die übrigen ja noch was überlegen.

Viele Grüße
Bastiane
[cap]

Bezug
                
Bezug
RegEx für gerade Zahlen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:38 Mo 03.11.2008
Autor: Steffi1988

Hi,

danke für deine Anwort, so würde es klappen mit allen Permutationen.

habe es jetzt allerdings auch so hinbekommen

((x|y|z)(x|y|z))*

sollte beides klappen :)

danke nochmal!

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


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]