Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Reguläre Ausdrücke (https://boardunity.de/regul-re-ausdr-cke-t1353.html)

LordAvalon 05.02.2004 16:04

Reguläre Ausdrücke
 
Bin mir nicht sicher, in welches Forum das hier gehört ...

Aber gut:
Ich möchte in einer Html - bzw. TXT - Datei mit Hilfe von regulären Ausdrücken bewirken, dass alles vor einem bestimmten Wort oer einer bestimmten Zahlenfolge gelöscht wird.

Wie mache ich das ?

Oder geht das auch anders, als mit regulären Ausdücken ? (z.B. mit einem Programm ... )

exe 05.02.2004 17:27

Das kommt drauf an mit welcher Programmiersprache/Software du das machen willst da sich reguläre Ausdrücke desöfteren in verschiedenen Implementierungen unterscheiden.
In PHP bräuchtest du keinen regulären Ausdruck, strstr() macht das ganze einfacher.

Ein regulärer Ausdruck der das gleiche macht wäre folgender:

$text = preg_replace('/^.*?(zeichenkette)/s', '\1', $text);

Dieser Ausdruck löscht alle Zeichen bis zum ersten Vorkommnis von "zeichenkette"

Björn 05.02.2004 17:37

am einfachsten geht das folgender massen:

PHP-Code:

<?php
$data 
file("file.txt");

$data str_replace("badword","goodword",$data);

$fp fopen("file.txt","w");
fwrite(implode("\n",$data),$fp);
fclose($fp);
?>

mfg

LordAvalon 05.02.2004 17:48

und wie mache ich das in einem Editor ?
z.B. Phase5

exe 05.02.2004 17:57

Einige Editoren bieten die Möglichkeit an Suchen&Ersetzen auch mit regulären Ausdrücken zu erledigen. Die meisten Editoren werden da wohl Perl kompatible Syntax verwenden.
Schau einfach mal ob es in Phase5 im Menü "Edit"/"Bearbeiten" eine Suchfunktion mit regulären Ausdrücken gibt oder ob es im "Suchen & Ersetzen" Dialog eine Option gibt mit der man reguläre Ausdrücke aktivieren kann.
Wenn es die Möglichkeit gibt schreibst du einfach anstatt einem normalen Suchbegriff einen regulären Ausdruck in die Suchmaske. Wie der aussehen muss hängt von der Syntax ab die der Editor versteht.

LordAvalon 05.02.2004 18:51

mit welchem befehl mach ich das ? mit diesem "/^.*?(zeichenkette)/s', '\1" ?
das hat nicht funktioniert ...

DaddyCool 05.02.2004 19:00

Zitat:

Zitat von LordAvalon
mit welchem befehl mach ich das ? mit diesem "/^.*?(zeichenkette)/s', '\1" ?
das hat nicht funktioniert ...

Dein Editor muss das explizit unterstützen.

Unter Windows ist mir auf die schnelle nur EditPlus bekannt der das kann, jedoch ist dies der einzige den ich benutze.

Ich schätze mal Ultraedit sollte dies auch können.

LordAvalon 05.02.2004 19:10

bei phase4 kann man auch "reguläre ausdrücke" beim ersetzen anklicken. also sollte es damit auch gehen. hab probiert, hat aber nicht geklappt

DaddyCool 05.02.2004 19:17

Zitat:

Zitat von LordAvalon
bei phase4 kann man auch "reguläre ausdrücke" beim ersetzen anklicken. also sollte es damit auch gehen. hab probiert, hat aber nicht geklappt

Wie ichs ehe auch bei der Suche, es ist aber phase5 ;)

Die Schrägstriche am Anfang und Ende (sowie die Buchstaben hinter dem letzten / musst du weglassen).

So sieht er dann so aus:

^.*?(zeichenkette)

Dann klappts auch mit dem Ausdruck. Genauso funktioniert es mit den meisten Editoren.

Björn 05.02.2004 19:23

sry wenn ich da was falsch verstanden habe
reguläre ausdrücke => regular expre... irgendwas =>
php

also du musst schon sagen, womit du was ersetzen willst!
die version von exe ist für php sowie meine ebenfalls

mfg

LordAvalon 05.02.2004 19:23

Schon klar :). Hab neben die 5 gehauen.

Aber bei mir trotzem angezeigt, dass der Suchbegriff nciht gefunden wurde, obwohl das Wort, dass ich für "zeichenkette" eingesetzt habe, existiert.

LordAvalon 22.02.2004 19:22

Mhmm ... ich bin zu blöd.

Könnt ihr mir noch mal sagen, was ich nun genau bei den Editoren genau im Suchfeld und was im Ersetzen - Feld eingeben muss ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25