Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Reguläre ausdrücke: HILFE!

Reguläre ausdrücke: HILFE!

kcnb8SeinDooferKuhseng30.11.0711:19
hi, ich kenn niemanden, der mir helfen kann. problem:
ich muss den quellcode einer html seite offline (entweder dreamweaver oder textwrangler o. ä.). nun muss ich in dieser html datei alle vorkommen von name="kljsdfjkljklsdf" in name ="" umwandeln. ich bekomme das aber nicht hin. das ganze pressiert auch wie nichts gutes und ich habe schon die halbe nacht mit bücher wälzen verbracht. kann mir bitte jemand sagen, was ich bei suchen und was ich bei ersetzen eintragen muss?!?
0

Kommentare

uplift
uplift30.11.0711:22
Einfach suchen nach "kljsdfjkljklsdf" und dann ersetzten durch "".
Geht sogar mit Textedit.
„Computer erleichtern uns ungemein die Arbeit an Problemen, die wir ohne sie nicht hätten. Ich habe keine Lösung, aber ich bewundere das Problem.“
0
Frank
Frank30.11.0711:30
1,$s/kljsdfjkljklsdf//g
0
kcnb8SeinDooferKuhseng30.11.0711:31
schonmal vielen dank, aber das "kljsdfjkljklsdf" sollte als synonym für alle möglichen dinge stehen. also zwischen den anführungszeichen des name-attributes kann sonst was stehen (auch satz- und sonderzeichen).
0
Frank
Frank30.11.0711:32
Oder:

1,$s/name="kljsdfjkljklsdf"/name =""/g

uplift: Reguläre Ausdrücker sind aber schöner
0
Frank
Frank30.11.0711:33
Achso

1,$/name = ".*"/name = ""/g

0
Frank
Frank30.11.0711:34
Der . steht für alles mögliche und das Sternchen für die Anzahl. Und hier eben beliebig oft. Auch null-mal.
0
kcnb8SeinDooferKuhseng30.11.0711:53
okay, bekomm ich nicht hin. etwas genauer: ich habe in textwrangler (dw auch vorhanden oder bite freeware tool empfehlen) die möglichkeit oben suche einzugeben und unten ersetze. was muss ich wo eingeben, wenn ich 1.600 strings dieser art habe:
<input type="hidden" name="Hnvkk|1^238194482-1187092260686|B0" value="20" />
<input type="hidden" name="Hfgdv|9581923452-11870922656|B0" value="20" />
0
Sebastian
Sebastian30.11.0712:01
Frank
1,$/name = ".*"/name = ""/g
Mit .* kommst Du in Teufels Küche wenn die greedy sind. Lieber [\"]*
0
Frank
Frank30.11.0712:03
Kann Textwrangler denn reguläre Ausdrücke? Ich mache es über die Kommandozeile:

vi dateiname.html

und dann so tippen:

:1,$s/name = ".*"/name = ""/g

Das sollte mit dem vi nicht länger als 2s dauern.
0
Frank
Frank30.11.0712:07
Wenn Textwrangler RegEx kann ist aber sicher einfacher

name = ".*"

in das Suche-Feld zu tippen. Und

name = ""

in das Ersetzen Feld.
0
Frank
Frank30.11.0712:09
Sebastion:

Ich will doch greedy. Oder? Verwirrt.
0
Sebastian
Sebastian30.11.0712:12
Frank
Sebastion:

Ich will doch greedy. Oder? Verwirrt.
Willst Du definitiv nicht.

Nimm an da steht sowas wie
name="abc" id="efg"

dann würde greedy heißen daß Du abc" id="efg ersetzt weil das das meiste ist was Du ersetzen kannst. Du willst aber nur bis zum schließenden Anführungsstrich ersetzen und die IDs und alle anderen potenziellen Attribute unangefaßt lassen.
0
kcnb8SeinDooferKuhseng30.11.0712:16
Frank
Wenn Textwrangler RegEx kann ist aber sicher einfacher

name = ".*"

in das Suche-Feld zu tippen. Und

name = ""

in das Ersetzen Feld.

klappt leider "nicht ganz". er findet nur 4 von 1.600 vorkommen...
0
kcnb8SeinDooferKuhseng30.11.0712:29
moment. also, das er nur 4 vorkommen ersetzt hat war mein fehler. hatte zuerst zu weit unten angefangen zu suchen. aaaaaber der fheler ist, dass innerhalb des ganzen tags alles nach dem vorkommen des name attributes gelöscht wird.also aus
<input type="text" name="Hfgdv|9581923452-11870922656|B0" value="44,00 " size="8" maxlength="50" />
wird dann
<input type="text" name="" />
habt ihr ne lösung parat?!

und wieder / immer noch: danke!!!
0
Frank
Frank30.11.0713:08
Ja. Dann hat Sebastion doch recht.

Also sollte gehen:

name = ".*?"

0
kcnb8SeinDooferKuhseng30.11.0713:14
das war es! danke, danke, danke! da fällt mir ein steinchen in der größe vom mount everest vom herzen.... danke.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.