Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

regular expression frage :-?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 08.09.2008, 12:16

Hi ,

ich sitze hier schon viel zulange drann und komme einfach nicht mit einen Regulären Ausdruck weiter :/

Resultat soll sein das der Reg.A. folgende HTML tags vertauscht und zwar nur genau die folgende Zeichenreihenfolge:

Aus:

Code: Alles auswählen

<a href="&#91;* lange url *&#93;">&#91;* 6leerzeichen *&#93;<font face="Arial" style="font-size&#58; 9pt">&#91;* text+leerzeichen *&#93;</font></a>
Vertauschen:

Code: Alles auswählen

<font face="Arial" style="font-size&#58; 9pt"><a href="&#91;* lange url *&#93;">&#91;* text+leerzeichen *&#93;</a></font>
[* blablup *] sind kommentare von mir zum Thread


sprich aus
TAG [a] => TAG [font] => TAG [/font] => TAG [/a]
TAG [font] => TAG [a] => TAG [/a] => TAG [/font]


Ich habe schon ein paar dutzend versuche mit Regex gestartet doch deren ergebnis vertausche auch einfache Links, die der "Genauen" Zeichenreihenfolge, die eigentlich ersetzt werden soll, nicht entsprach :/

hoffe mir kann jemand einen Regulären Ausdruck erstellen oder vielleicht sogar erklären wie ich das hinbekomme :)

Ich hatte preg_replace verwendet.

mfg ins0[/u]

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Ubunty
PostRank 1
PostRank 1
Beiträge: 4
Registriert: 03.03.2007, 15:33

Beitrag von Ubunty » 08.09.2008, 20:41

Ich würde es in mehreren Schritten versuchen:

Versuch mal das hier:

$a = '<a href="[* lange url *]">[* 6leerzeichen *]<font face="Arial" style="font-size: 9pt">[* text+leerzeichen *]</font></a>';
$a =~ s/<a href=(.+?)>//is;
$url = $1;
$a =~s/>(.+?)<//is;
$text = $1;
$b = '<font face="Arial" style="font-size: 9pt"><a href="'.$url.'">'.$text.'</a></font>';

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 08.09.2008, 21:02

ins0 hat geschrieben:Ich habe schon ein paar dutzend versuche mit Regex gestartet doch deren ergebnis vertausche auch einfache Links, die der "Genauen" Zeichenreihenfolge, die eigentlich ersetzt werden soll, nicht entsprach :/
Du meinst, dein Muster passt auch auf die falschen Textstellen? Dann hast du möglicherweise das Pferd vom falschen Ende aufgezäumt, d.h. anstatt mit einem genauen Muster anzufangen (vielleicht sogar ohne Platzhalter) hast du versucht, ein Allerweltsmuster zu spezifizieren (sowas wie <a.*</a>).

Der nachfolgende Javascript-Schnippsel trifft zumindest deine Vorgabe und filtert die nötigen Teile raus:

Code: Alles auswählen

var q = 'bla<a href="url">      <font face="Arial" style="font-size&#58; 9pt">&#91;* text+leerzeichen *&#93;</font></a>fasel<a href="schnurz">furz</a>';
alert&#40;q.match&#40;/&#40;<a href="&#91;^"&#93;+">&#41; &#123;6&#125;&#40;<font face="Arial" style="font-size&#58; 9pt">&#41;&#40;.+?&#41;<\/font><\/a>/i&#41;&#41;;
Die Umsetzung in PHP sollte nicht allzu schwierig sein, das Muster bleibt ja.

Du könntest natürlich bei der Gelegenheit das restlos überflüssige <font>-Element gleich rauswerfen - auch <a> kennt das style-Attribut, dazu musst du nicht <font> bemühen.