AGB  ·  Datenschutz  ·  Impressum  







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

Reguläre Ausdrücke

Ein Thema von moritz · begonnen am 21. Aug 2004 · letzter Beitrag vom 21. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#1

Reguläre Ausdrücke

  Alt 21. Aug 2004, 12:57
Hallo Leute,

ich bin auf der Suche nach einem Regulären Ausdruck, der mir aus diesem String hier
Zitat:
<SCRIPT LANGUAGE="JavaScript"> hit(97313,1,0,"0097313","http://www.natter-jack.info/sound%20effects/farm%20animals/wild%20boar.wav","http://www.natter-jack.info/Main%20pages/sounds_of_the_countryside.htm","wild boar",14,1,8,11025,"1.3") hit(76965,2,0,"0076965","http://www.bigcats.org/abc/sounds/boar.wav","http://www.bigcats.org/abc/identification/sounds.html","boar",20,1,8,22254,"0.9")
</SCRIPT>
die URL's der wav bzw. mp3-Dateien rausfiltert, also z.B.
http://www.natter-jack.info/sound%20...ild%20boar.wav

Soweit bin ich schon:
/.*\.(mp3|wav)/

Aber leider spuckt er mir dann nur das hier aus(print_r der Ergebnisse):
Zitat:
Array ( [0] => hit(97313,1,0,"0097313","http://www.natter-jack.info/sound%20effects/farm%20animals/wild%20boar.wav [1] => wav )
Könnt ihr mir helfen?

Gruß
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#2

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:07
Hi!


/http.*?\.(mp3|wav)/ dürfte funktionieren.
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:09
Hehe...genial, Danke! Nur ein Problem und eine Frage noch
Problem: Er gibt mir nur einen Link aus
Frage: Was bringen mir hier ".*?" der Punkt und das Fragezeichen?
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:12
Hallo moritz,

Dein Ausdruck sucht nach folgendem Muster
Code:
Beliebig viele beliebige Zeichen, die letztlich mit der Folge ".mp3" oder ".wav" enden.
Das bedeutet mit anderen Worten:
Code:
Alles ab Beginn der Zeichenkette, bis ".mp3" oder ".wav" erreicht wird.
Versuche bei regulären Ausdrücken nach Möglichkeit, sehr genau einzugrenzen, wonach Du suchst. Hier:
Code:
Ein in Anführungszeichen eingefasster (das bedeutet insbesondere, dass innerhalb des eingefassten Textes keine weiteren Anführungszeichen auftreten) nicht-leerer Text, der mit ".mp3" oder ".wav" in beliebiger Groß-/Kleinschreibung endet.
funktionieren sollte etwas in dieser Art (nicht getestet)
Code:
(?i)\"([^\"]+\.(mp3|wav))\"
Der Subausdruck 1 enthält dann den tatsächlichen Dateinamen.
gruß, choose
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#5

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:13
.* findet dir null oder mehr beliebige zeichen, davon aber so viele wie möglich
das ? direkt dahinter macht, dass dieses .* so wenig wie möglich findet
probier mal den regex ohne dieses ? aus und du wirst sehen
Christoph
char l[]="\xd6N\x96\xa6\xe6\xce.\xa6\xe4\xce\x04N\x86\xae\ xce\xfc",I,*i=l-1;for(;I=3,*i
++;){while(*i=*i&~(1<<I|1<<7-I)|(*i&1<<I)<<7-2*I|(*i&1<<7-I)>>7-2*I,I--);}puts(l);
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#6

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:19
Choose, danke für die Erklärung! Aber deienr geht leider nicht
@ripper: Ich hab das ? weg, und nichts hat sich verändert.
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#7

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:21
Ich versuchs auch mal so schön zu erklären :

/http.*?\.(mp3|wav)/

http Suche die Zeichenkette "http"

.* dannach beliebig viele beliebige Zeichen...

? ... aber nur soviele bis der nächste Suchausdruck auch gefunden wird! Und zwar

\.(mp3|wav) .wav ODER .mp3! Der Backslash vor dem . maskiert den Punkt, d.h. er sollen den Punkt als Zeichen behandeln nicht als regulären Ausdruck.

  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#8

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:28
Okay, Danke für eure Erklärungen! Aber leider findet er immer nur einen URL

P.S.: Ich arbeite mit preg_match
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:29
Zitat von moritz:
Choose, [..] deienr geht leider nicht
Du scheinst eine Umgebung zu verwenden, bei der reguläre Ausdrück in Schrägstriche eingebettet sein müssen, hast Du das getan? Hast Du den Modifizierer gemäß der von Dir verwendeten Notation ans Ende gestellt?
Versuche zunächst eine möglichst simple Version, zB
Code:
/\"([^\"]+\.(mp3|wav))\"/
und erst später mit dem Modifizierer zur Vernachlässigung der Groß-/Kleinschreibung zu arbeiten.

BTW: Multiplikatoren der Art "+?" oder "*?" verwerfen der standardgemäßen "gierigen" zugunsten der "genügsamen" Interpretierung. Du solltest in Deiner Dokumentation zu den regulären Ausdrücken unter "gierig" oder "greedy" eine Erklärung finden.
gruß, choose
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#10

Re: Reguläre Ausdrücke

  Alt 21. Aug 2004, 13:36
Okay, er geht jetzt, danke! Aber leider - wie gesagt - kommt immer nur ein URL raus
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:59 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