 |
Willkommen im TP Hilfe Forum unter Traum-Projekt.com
Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen und Fragen stellen, privat mit anderen TPlern kommunizieren, an Umfragen teilnehmen und gratis Fotos runterladen. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Wir würden uns freuen, Dich in einer der freundlichsten Communitys als Mitglied begrüßen zu dürfen. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support Team.
Viel Spaß bei Traum-Projekt.com
|
28.05.2003, 12:41
|
#31
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Hab auch noch keine fertige Lösung, nehme aber mal stark an, daß das Anchor-Ende </A> eine grössere Rolle spielen wird... 
|
|
|
28.05.2003, 17:56
|
#32
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Nee, tut er doch nicht...( Muss zu meiner Schande gestehen, daß ich die Syntax auch erst noch mal nachlesen musste...  )
Mir der Aufgabe hab ich mir jetzt selber ein Bein gestellt: ich kann zZ leider nur die Perl - Lösung anbieten - in Bezug auf php fehlen mir da noch Kentnisse ( und hab gerade auch keine Zeit zum Experimentieren ). Aber vielleicht kriegt's einer der php-Gurus ja hin...
Aaaalso, die Perl-Lösung:
while ($String =~ m/<a.+?href=['"]?(http[s]?|ftp):\/\/([^\/ "']+)/g) {
print "Protokoll: $1\nDomain: $2\n";
}
Was hat sich geändert? Nach dem ersten Wiederholer- + wurde ein Fragezeichen ? eingefügt und die ganze regexp in eine Schleife gepackt. Und das ist alles?!?
Nun, regexp sind im Normalfall "gierig" - sie liefern den grösstmöglichen bzw letztmöglichen Treffer zurück. Das waren in unserem Beispiel die Daten des zweiten Links. Um das zu unterdrücken und die regexp gleich beim ersten Treffer aufhören zu lassen, langt es, ein Fragezeichen hinter dem (ersten ) Wiederholungswert zu setzen. Dann gibt die regexp den erstmöglichen Treffer zurück.
Und die Schleife? Nun, eine regexp hat eine Art "Kurzzeitgedächtnis". Solange keine andere regexp aufgerufen wird oder die Suchbedingung geändert wird, "merkt" sie sich, wo sie war und macht beim nächsten Aufruf an der Folgestelle weiter.
That's it...
|
|
|
16.06.2003, 16:21
|
#33
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: einem Dorf unweit der längsten Theke der Welt
|
Da fällt mir gerade noch dieser Link zu ein, den ich jedem nur ans Herz legen kann.
Regular Expression Library
Kleine Spielzeug auf der Seite .... man seine Expressions online testen. Der Hammer ist jedoch die Masse an vorgegebenen Ausdrücke, von der man schlichtweg erschlagen wird.
__________________
Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das denken von Gedanken ist gedankenloses Denken.
Wer braucht schon JavaScript ?
|
|
|
25.06.2003, 03:20
|
#34
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Schon ganz gut diese Sache, habe mir auch vor paar Tagen das O'Reilly Buch gekauft über Reg. Ausdrücke, bin jetzt bisschen weiter als ihr im Moment mit diesem Workshop, deswegen wollte ich mal fragen ob ich falls Interesse besteht auch paar weitere Begriffe/Lösungen hier erklären soll, mir fehlen hier im Augenblick die ganzen ?<= ... Sachen 
|
|
|
25.06.2003, 09:21
|
#35
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
hab nix dagegen...
|
|
|
27.06.2003, 10:56
|
#36
|
|
TP-Specialist
Registriert seit: Aug 2002
|
.
Geändert von Strogij (27.07.2005 um 15:30 Uhr).
|
|
|
16.07.2003, 23:02
|
#37
|
|
TP-Insider
Registriert seit: Jan 2002
Ort: Akhragan
|
rekursives suchen und ersetzen
folgendes problemchen:
viele, viele, viele,wirklich ganz viele dateien mit einem namen die unerwünschte zeichen enthalten, z.b ,-leerzeichen, umlaute.
die alle (ausser die umlaute natuerlich) sollen durch einen _ ersetzt werden.
das habe ich bisher so gemacht (perl)
...
$name_neu =~ s/([\ |\_{2,}|\,|\'])/\_/g;
...
dabei ist es vorgekommen, dass mehrere _ hintereinander im resultat standen, beispielsweise (blubb___alt__test_irgendwas.bla)
es soll aber immer nur ein _ auftauchen.
geht das mit einem einzigen regexpr??
im moment habe ich zwei hintereinander zu stehen
$name_neu =~ s/([\ |\_{2,}|\,|\'])/\_/g;
$name_neu =~ s/(\_{2,})/\_/g;
__________________
میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی.
நான் கண்ணாடி சாப்பிடுவேன், அதனால் எனக்கு ஒரு கேடும் வராது
|
|
|
16.07.2003, 23:22
|
#38
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Dafür kann man normalerweise den Quantifier + benutzen.
Muss man in Perl soviele Zeichen escapen?? Ich würds so machen:
Hoffe das ist richtig... kann mich auch irren  Mit JavaScript funzts auf alle Fälle:
Code:
<script language="JavaScript">
var testen = "hallo-, das 'ist' toll_.htm";
testen = testen.replace(/([-_,' ])+/g,"_");
alert(testen);
</script>
Gruss
Jan
|
|
|
17.07.2003, 23:23
|
#39
|
|
TP-Insider
Registriert seit: Jan 2002
Ort: Akhragan
|
[perl] regexpr
naja, das mit dem fehlenden + ,tztztztz.....
war wohl die hitze.
aber mal was ähnliches.
bei den angesprochenen dateien ersetze ich die umlaute
mit dem in perl eingebauten
tr/SEARCHLIST/REPLACELIST/cds;
(ersetzt jeden buchstaben in SEARCHLIST durch den entsprechenden buchstaben in REPLACELIST)
also mittels
$neu =~ tr/äüöß/auos/;
das macht aber aus einem ä ein a, aus einem ü ein u, und so weiter..
aber richtiger wäre natürlich aus ä mach ae, aus ü mach ue, und so weiter...
aber die formel $neu =~ tr/äöüß/aeoeuess/; funktioniert natürlich nicht
hat da jemand eine idee wie man das umsetzen könnte
__________________
میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی.
நான் கண்ணாடி சாப்பிடுவேன், அதனால் எனக்கு ஒரு கேடும் வராது
|
|
|
17.07.2003, 23:40
|
#40
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
In PHP kann man Arrays die Pattern und die zu ersetzenden Bereiche als Arrays angeben. Wie das bei Perl aussieht weiss ich net. -> http://de3.php.net/preg_replace
Gruss
Jan
|
|
|
18.07.2003, 07:33
|
#41
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Die Array-Lösung funktioniert auch in Perl - allerdings nicht mit dem tr-, sondern mit dem s-Befehl:
Code:
#! /usr/bin/perl
( %trans ) = ( 'ä','ae','ö','oe','ü','ue' );
$String="Bläblöblü";
$String =~ s/([äöü])/$trans{$1}/g;
print $String,"\n";
|
|
|
24.08.2003, 23:57
|
#42
|
|
TP-Junior
Registriert seit: Jan 2003
|
euer klein krieg
***gelöscht auf Wunsch von falsh mx. Beitrag sollte garnicht hier landen  ***
Gruss
Jan
|
|
|
25.08.2003, 00:04
|
#43
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
|
|
|
25.08.2003, 01:48
|
#44
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Man lernt nur dann, wenn man "geschlagen" wird
Spruch des Jahres, Copyright ist schon drauf 
|
|
|
09.09.2003, 13:20
|
#45
|
|
TP-Member
Registriert seit: Aug 2002
|
Ich glaube dieser Thread ist eins der ersten Tutorials wo es bei mir auf Anhieb klick gemacht hat.(Ohne die Codes erst zu testen)
Immer weiter so 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
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 anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:11 Uhr.
|
 |