![]() |
Auf Kriegsfuss mit Regulären Ausdrücken
Hallo!
Bin hier gerade am verzweifeln, ich schreibe für mein PHP Projekt einen kleinen Textparser der mir in einem Text alle Stellen vonm typ [URL|Beschreibung] in
Code:
ändern soll, so weit so gut das kann er ja jetzt :stupid:
[url="URL"]Beschreibung[/url]
Allerdings wollte ich eine Zusatzfunktion einbauen, dass er alle einfach vorkommenden URL's auch in die <a>-tags packt. Doch das dumme ist jetzt das diese Funkion auch schon vorhandene <a>-Tags aufmischt so das man ein Ergebnis dieser Sorte erhält:
Code:
Das ist natürlich sch...lecht also hab ich mir gedacht wenn schon href=" vor der url steht sollte er das dingen nicht mehr parsen, allerdings verzweifle ich jetzt an dem RegExp Ausdrück dafür, meiner sieht wie folgt aus:
[url="<a href="][/url]">Beschreibung</a>
Code:
Doch so wie er da steht spuckt er mir kein ergebnis aus, egal ob ich jetzt einfach eine URL als zielstring nehme oder eine url mit href=" voraus :|
[^(href\=\")](http\:\/\/)([\w|-|_|/|\.]+)
Weiß jemand wo der Hund in dem Ausdruck begraben ist? Bin für jede Hilfe dankbar! mfg phlux :hi: |
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Du musst theoretisch nur filtern ob direkt vor der URL ein " ist... Wenn das der Fall ist, dann is die URL in nem a Tag, ansonsten nicht ;>
|
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Ja auch wenn ich nur nach dem " gucke funzt es nit :wall:
|
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Was hältst du von einem Ausdruck, der etwa so aussieht?
Code:
(Ungetestet)
$result = pref_match("/\[(.*)\|(.*)\]/", $input, $result);
echo "<a href=\"{$result[2]}\">{$result[1]}</a>"; |
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Vielleicht ist das hier genau was du suchst.
Zitat:
![]() |
Re: Auf Kriegsfuss mit Regulären Ausdrücken
wohoo moment leute, den fall den ihr jetz hier beschreibt hab ich schon längst, es geht nur darum das ich es nicht gebacken kriege, das er zwischen einem einfachen
![]() ![]() |
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Das macht mein regulärer Ausdruck ;)
|
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Moment, dein Audruck zerpflückt zB [blabla|blubblub] in
![]() |
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Tut er *g* Das wolltest du doch, oder? :gruebel:
|
Re: Auf Kriegsfuss mit Regulären Ausdrücken
Nope, wie bereits oben beschrieben habe ich 2 RegExp:
RE1: liest alle [url|text] aus und wandelt sie passend ins <a href... um! den habe ich bereits RE2: soll alle einfachen http:// urls auslesen und sie dann in einen <a href verweis umwandeln wenn ich jetzt re1 aauf den text anwende ist alles iO wende ich allerdings re2 danach noch an wandelt er mir die bereits zu <a href verweise nochmals in einen verweis um, also in <a href="<a href="http: ... das will ich nicht, also habe ich mir überlegt soll re2 nur greifen, wenn kein " oder ein lerzeichen vor der url steht, das habe ich ansatzweise versucht mit
Code:
zu realisieren, klappt allerdings nicht, weil er so garnichts findet und genau bei dem Ausdruck brauch ich jetzt hilfe, also er soll gucken ob ein " vorsteht, dann finger weg, steht nix (zeilenanfang) oder ein leerzeichen davor dann wandel ihn in ein <a>-Tag um, ich hoffe das war jetzt verständlicher :zwinker:
[^(href\=\")](http\:\/\/)([\w|-|_|/|\.]+)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz