AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu regulären Ausdrücken

Ein Thema von pajofego · begonnen am 3. Feb 2005 · letzter Beitrag vom 4. Feb 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#11

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 14:46
Ich weiß, ehrlich gesagt, nicht, was ein "forward lookup" ist. In den Anleitungen, wo man "?:" findet, wird es einem einfach als Möglichkeit präsentiert, einen geklammerter Ausdruck nicht mitzuzählen. Und das funktioniert, war ich damit erstmal zufrieden.
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#12

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 16:30
Hey cool danke! Ich glaube ich habs dank euch zum funktionieren gebracht:

Code:
public static void ParseFile(string fileName)
{
 if (!System.IO.File.Exists(fileName))
 {
  Console.WriteLine("The file specified does not exist.");
 }
  else
 {
  FileStream f = new FileStream(fileName, FileMode.Open);
  StreamReader stream = new StreamReader(f);

  while (!stream.EndOfStream)
  {
   string line = stream.ReadLine();

   Regex regexDate = new Regex(@"(?<date>(\d{2}\.){2}\d{4}).*?(?<number1>\d{4}\.\d{2}).*?(?<number2>\d{4}\.\d{2}).*?(?<number3>\d{4}\.\d{2}).*?(?<number4>\d{4}\.\d{2})");
   MatchCollection match = regexDate.Matches(line);
   foreach (Match m in match)
   {
     Console.WriteLine(m.Groups["date"].ToString());
     Console.WriteLine(m.Groups["number1"].ToString());
     Console.WriteLine(m.Groups["number2"].ToString());
     Console.WriteLine(m.Groups["number3"].ToString());
     Console.WriteLine(m.Groups["number4"].ToString());
   }
  }
 }
}
A bissle eng geworden, aber ich hoffe man kann es noch lesen!

@Assarbad

Ich hab dein Code ausprobiert aber der hat das ganze nicht gematch, leider habe ich nicht das notwendige Wissen um herauszufinden warum es nicht ging.

Gibt es irgendwo eine Doku im Netz wo ich mir ein paar Beispiele anschauen kann, damit ich diese Syntax besser verstehen kann.

Ansonsten vielen Dank für eure Hilfe,

beste Grüße pajofego

P.S.: Obiger Code basiert auf das .NET 2.0 Framework
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#13

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 16:53
@pajofego: Ich empfehle dir "Reguläre Ausdrücke - Kurz und Gut" (von O'Reilly) sowie das Buch "Reguläre Ausdrücke" von Jeffrey Friedl.

Desweiteren gibt es eine gute Einführung in der Perldokumentation von SelfHTML.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#14

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 17:49
Zitat von Assarbad:
Wenn du diese Möglichkeit findest, gib mir bescheid.
Hat Christian gepostet, das Fragezeichen hinter der Klammer gehört aber nciht dazu Also alle Subpatterns, die mit ?: beginnen, sind "non-capturing patterns", können also nicht indiziert werden.

Zitat von Assarbad:
Mit Auftrennen meine ich, daß bei dir ein Match (nämlich $2) für alle 4 Floats zusammen gibt, bei mir einen für jeden Float extra ($2..$5; was ich in Sachen Typensicherheit für besser halte).
Nein, bei mir nimmt er nur die ersten vier Ziffern, weil ich die Frage des OP ein wenig missverstanden habe. Aber so, wie er es jetzt umgesetzt hat, findet er ja die vier Floats einzeln, bei mir hat er quasi nur Trunc(Float1) gefunden

Zitat von Christian S.:
Ich weiß, ehrlich gesagt, nicht, was ein "forward lookup" ist.
Fachbegriff: positive assertion, dann hätte allerdings noch ein = zwischen Fragezeichen und Doppelpunkt gemusst: "(?=" (die Klammern sind syntaktisch zwingend für Assertions). Der Doppelpunkt muss dann unbedingt vorhanden sein, zählt aber nicht zum Subpattern.

Zum Thema PCRE lernen:
Immer wieder diese Bücherwürmer, ich sehe da absolut keine Notwendigkeit für, ein Buch zu kaufen... In der PHP-Doku zu PCRE-Funktionen ist eine sehr gute Beschreibung zur PCRE-Syntax und den Pattern Modifiers. Allerdings scheint die für die Regex-Klasse obsolet zu sein, denn besagte named groups sind noch nicht enthalten. Ob die mit Perl6 dazugekommen sind, oder eine Spezialität von .NET (auch in 1.1 gab's die schon) sind, weiß ich nicht, aber ich finde sie sind 'ne tolle Erfindung.
Die Beschreibung aus der Perl-Doku kenne ich nicht, eventuell könnte da aber was über die Neuerungen von Perl6 drinstehen, wenn es welche gab.
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#15

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 18:45
Für den Einstieg kann ich das hier empfehlen. Habe ich auch mit angefangen und fand es sehr gut!

Zitat:
Hat Christian gepostet, das Fragezeichen hinter der Klammer gehört aber nciht dazu
Nee, dass ist natürlich dafür da, dass da mal 'ne Uhrzeit steht und mal nicht.

positive assertion: *googlet* Ach so, das ist das. Naja, noch nie gebraucht
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#16

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 19:09
Zitat von Christian S.:
positive assertion: *googlet* Ach so, das ist das. Naja, noch nie gebraucht
Ich schon, aber es gibt auch nicht wirklich viele Anwendungszwecke für sowas. Da brauch' ich eher rekursive Subpatterns
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#17

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 19:19
Zitat von tommie-lie:
Immer wieder diese Bücherwürmer, ich sehe da absolut keine Notwendigkeit für, ein Buch zu kaufen... In der PHP-Doku zu PCRE-Funktionen ist eine sehr gute Beschreibung zur PCRE-Syntax und den Pattern Modifiers. Allerdings scheint die für die Regex-Klasse obsolet zu sein, denn besagte named groups sind noch nicht enthalten. Ob die mit Perl6 dazugekommen sind, oder eine Spezialität von .NET (auch in 1.1 gab's die schon) sind, weiß ich nicht, aber ich finde sie sind 'ne tolle Erfindung.
Die Beschreibung aus der Perl-Doku kenne ich nicht, eventuell könnte da aber was über die Neuerungen von Perl6 drinstehen, wenn es welche gab.
Ich gestehe, ich bin bibliophil! Aber deswegen mußt du mich noch lange nicht hier diskriminieren, sonst sag ich Gerome bescheid!

Bücher sind eine ziemlich feine Sache (außer der Tatsache, daß man sich damit inzwischen gemischt 3 Rechtschreibungen antut *kotz*) und in zweitgenanntem Buch werden RegExes eben nicht nur in Perl sondern auch in (E)Grep und Emacs und anderen Tools besprochen. Außerdem gibt es eine Regex um Emailadressen nach RFC zu verifizieren - ist aber zu lang um sie hier abzutippen. Naja und dann noch viele technische Details. Als perlophiler Admin kann ich mir REs nicht mehr wegdenken.

In Sachen "?:": ich hatte mehr gehofft, daß ich mehrfache Vorkommen von einem Pattern auch in mehrere Matches pushen kann, ohne mehrfach Klammern zu setzen. Bsp:

/([0-9\.]+?){4}[\s\t]/

sollte am besten $1 bis $4 mit den Matches der einzelnen "Subpattern" belegen. Das geht aber leider nicht.

Die Perldoku in SelfHTML findet sich hier: http://de.selfhtml.org/cgiperl/sprache/regexpr.htm
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#18

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 20:05
Du benutzt ziemlich gerne den Suffix "phil", kann das sein? (Edit: bist du also ein Philophiler? )
Zitat von Assarbad:
Ich gestehe, ich bin bibliophil!
Ich auch, aber nicht was Fachbücher angeht
Zitat von Assarbad:
Als perlophiler Admin kann ich mir REs nicht mehr wegdenken.
Auch wenn ich eher der PHP-Typ bin, ich bin heilfroh, daß es sie gibt.

Zitat von Assarbad:
In Sachen "?:": ich hatte mehr gehofft, daß ich mehrfache Vorkommen von einem Pattern auch in mehrere Matches pushen kann, ohne mehrfach Klammern zu setzen. Bsp:
/([0-9\.]+?){4}[\s\t]/
sollte am besten $1 bis $4 mit den Matches der einzelnen "Subpattern" belegen. Das geht aber leider nicht.
Stimmt, und mir ist auch keine Möglichkeit bekannt, das irgendwie hinzukriegen, außer alle vier Subpatterns auszuschreiben.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#19

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 20:44
[OT]
Zitat von tommie-lie:
Du benutzt ziemlich gerne den Suffix "phil", kann das sein? (Edit: bist du also ein Philophiler? )
Ich bin multiphil *g*

Und ob Fachbücher oder nicht ist bei mir auch egal - denn Sprachbücher von 1910, oder Abhandlungen über jüdische Geistliche von 1860 sind im Grunde ja auch Fachbücher. Aber unheimlich interessant.

Auch hat jedes Buch eine eigene Geschichte. Ich besitze zB ein englisches Buch von 1936 "Roots of the Russian language", welches einem deutschen Kriegsgefangenen gehört haben muß, welcher in den USA einsaß. Es ist ein Stempel des Gefangenenlagers im Buch enthalten.
[/OT]
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#20

Re: Frage zu regulären Ausdrücken

  Alt 4. Feb 2005, 00:44
Hallo Leute,

sorry wenn ich euch nochmal belästigen muss, aber ich hab noch eine frage!

Mein Problem ist jetzt, dass meine Zahlenreihe irgendwann folgende gestallt animmt:

19.06.1985 998.00 998.00 998.00 998.00 0

oder auch

02.02.2005 00:58 1.3041 1.3049 1.3037 1.3047 0

Zum Einlesen benutze ich den von euch vorgeschlagenen Code:
Code:
(?<number>\d{4}\.\d{2})
Wie muss ich den ändern, damit er vor dem Punkt Zahlen mit 1-4 Stellen einliest und nach dem Punkt Zahlen mit max. 3 Stellen liest? Gibt es eine Art Bereichsdefinition für so etwas?

Danke nochmal!

Gruss pajofego
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz