Hilfe für reguläre Ausdrücke für HTML und CSS für href, src und url gesucht
Hallo,
ich bin der Meinung, dass ich relativ viel kann, aber reguläre Ausdrücke gehören nicht dazu.
Für eine Software versuche ich mich daran reguläre Ausdrücke zu erstellen um Links in HTML- und CSS-Dateien zu finden.
Sollte ja eigentlich ganz einfach sein, aber HTML is a bitch und 99% der Beispiele sind nicht vollständig.
1. url
Beispiel:
Mein Ausdruck:
Es könnte auch so aussehen
Mein Problem: Wenn am Anfang also ein " ist, darf er auf weitere Klammer nicht reagieren, denn das sind unter Linux gültige Dateinamen.
Meine Beispiele.
Der Syntax ist eigentlich fehlerhaft, kommt in freier Wildbahn aber häufiger vor.
2. src/href
Beim Ausdruck:
Wenn am Anfang " oder ' sind muss es auch damit enden.
Wenn am Anfang nichts davon ist, kann das Ende ein Leerzeichen, > oder /> sein.
Hat da bitte mal Jemand Mitleid mit mir?
Danke!
ich bin der Meinung, dass ich relativ viel kann, aber reguläre Ausdrücke gehören nicht dazu.
Für eine Software versuche ich mich daran reguläre Ausdrücke zu erstellen um Links in HTML- und CSS-Dateien zu finden.
Sollte ja eigentlich ganz einfach sein, aber HTML is a bitch und 99% der Beispiele sind nicht vollständig.
1. url
Beispiel:
url("wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff")
((url *\( *)["']*)(.*?)( *["']* *(\)))
Es könnte auch so aussehen
url ( "wp-con()tent/plugins/accordions/assets/global/webfonts/fa-brands-400.woff" )
url ( wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff )
Mein Problem: Wenn am Anfang also ein " ist, darf er auf weitere Klammer nicht reagieren, denn das sind unter Linux gültige Dateinamen.
url("wp-con)tent/plugins/accordions/assets/global/webfonts/fa-brands-400.woff")
Meine Beispiele.
Der Syntax ist eigentlich fehlerhaft, kommt in freier Wildbahn aber häufiger vor.
url(wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff)
url("wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff")
url('wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff')
url ( wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff )
url ( "wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff" )
url ( 'wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff' )
url(wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff)
url("wp-con)tent/plugins/accordions/assets/global/webfonts/fa-brands-400.woff")
url('wp-cont)ent/plugins/accordions/assets/global/webfonts/fa-brands-400.woff')
url ( wp-content/plugins/accordions/assets/global/webfonts/fa-brands-400.woff )
url ( "wp-con)tent/plugins/accordions/assets/global/webfonts/fa-brands-400.woff" )
url ( 'wp-cont)ent/plugins/accordions/assets/global/webfonts/fa-brands-400.woff' )
2. src/href
Beim Ausdruck:
(href *= *["']*)(.*?)( *["']*/ *)
<link rel='stylesheet' id='base-css' href='wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2' type='text/css' media='all' />
<link rel='stylesheet' id='base-css' href="wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2" type='text/css' media='all' />
<link rel='stylesheet' id='base-css' href=wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2 type='text/css' media='all' />
<link rel='stylesheet' id='base-css' href = 'wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2' type='text/css' media='all' />
<link rel='stylesheet' id='base-css' href = "wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2" type='text/css' media='all' />
<link rel='stylesheet' id='base-css' href = wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2 type='text/css' media='all' />
<link rel='stylesheet' id='base-css' href='wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2'/>
<link rel='stylesheet' id='base-css' href="wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2"/>
<link rel='stylesheet' id='base-css' href=wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2/>
<link rel='stylesheet' id='base-css' href = 'wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2'/>
<link rel='stylesheet' id='base-css' href = "wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2"/>
<link rel='stylesheet' id='base-css' href = wp-content/themes/biopic/stylesheets/base.css?ver=5.1.2/>
Wenn am Anfang " oder ' sind muss es auch damit enden.
Wenn am Anfang nichts davon ist, kann das Ende ein Leerzeichen, > oder /> sein.
Hat da bitte mal Jemand Mitleid mit mir?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 494580
Url: https://administrator.de/contentid/494580
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
10 Kommentare
Neuester Kommentar
hi
Oha ...
Ich denke so sollte das zumindest mit dem ersten Case klappen
https://regex101.com/r/Hbj8aP/55
Oha ...
Ich denke so sollte das zumindest mit dem ersten Case klappen
(url *\( *(['"]*))(.*?)\2 *\)
Ich kann dir das Repository von tomnomnom für Regex-Pattern empfehlen: tomnomnom/gf
Ist in Go geschrieben und auch schon vorkompiliert unter Releases. Damit kannst du auch eigene Pattern erstellen und auf der Commandline pipen | . Ist wirklich ein tolles und nützliches Tool.
Urls pipe ich mit: "https?://[^\"\\'> ]+" und IP´s: "([0-9]{1,3}[\\.]){3}[0-9]{1,3}" siehe Screenshot
Ist in Go geschrieben und auch schon vorkompiliert unter Releases. Damit kannst du auch eigene Pattern erstellen und auf der Commandline pipen | . Ist wirklich ein tolles und nützliches Tool.
Urls pipe ich mit: "https?://[^\"\\'> ]+" und IP´s: "([0-9]{1,3}[\\.]){3}[0-9]{1,3}" siehe Screenshot
Zitat von @clubmaster:
Urls pipe ich mit: "https?://[^\"\\'> ]+" und IP´s: "([0-9]{1,3}[\\.]){3}[0-9]{1,3}" siehe Screenshot
Hat nur leider rein gar nichts mit dem Thread zu tun, und hilft hier auch nicht. Btw die Pattern sind ebenso fehlerhaft bzw. unvollständig nach RFC.Urls pipe ich mit: "https?://[^\"\\'> ]+" und IP´s: "([0-9]{1,3}[\\.]){3}[0-9]{1,3}" siehe Screenshot
Falsch nicht, es erfasst nur nach RFC nicht alle möglichen URL-Variationen also unvollständig im Sinne der Erfassung von URLs, man lese sich https://mathiasbynens.be/demo/url-regex durch.
Und hat mit dem Thread überhaupt nichts zu tun da dein Regex hier überhaupt nichts vom TO gewünschte berücksichtigt, ist also unnötig fehl am Platz.
Und hat mit dem Thread überhaupt nichts zu tun da dein Regex hier überhaupt nichts vom TO gewünschte berücksichtigt, ist also unnötig fehl am Platz.
Hallo,
Ich glaube, dass sich die meisten Forumsmitglieder nicht als alternativer Antwortgenerator verstehen. Viele schreiben hier, weil die den Erfahrungsaustausch schätzen. Die Threads helfen ja oft nicht nur dem TO sondern auch anderen, die hier später mal landen. In diesem Sinne sind solche Belehrungen hier völlig kontraproduktiv. Du hast doch schon Deinen Lösungs-Pluspunkt. Möchtest Du noch Minuspunkte für andere vergeben?
Grüße
lcer
Zitat von @140913:
und hat mit dem Thread überhaupt nichts zu tun da dein Regex hier überhaupt nichts vom TO gewünschte berücksichtigt.
und hat mit dem Thread überhaupt nichts zu tun da dein Regex hier überhaupt nichts vom TO gewünschte berücksichtigt.
Ich glaube, dass sich die meisten Forumsmitglieder nicht als alternativer Antwortgenerator verstehen. Viele schreiben hier, weil die den Erfahrungsaustausch schätzen. Die Threads helfen ja oft nicht nur dem TO sondern auch anderen, die hier später mal landen. In diesem Sinne sind solche Belehrungen hier völlig kontraproduktiv. Du hast doch schon Deinen Lösungs-Pluspunkt. Möchtest Du noch Minuspunkte für andere vergeben?
Grüße
lcer
Zitat von @lcer00:
Hallo,
Ich glaube, dass sich die meisten Forumsmitglieder nicht als alternativer Antwortgenerator verstehen. Viele schreiben hier, weil die den Erfahrungsaustausch schätzen. Die Threads helfen ja oft nicht nur dem TO sondern auch anderen, die hier später mal landen. In diesem Sinne sind solche Belehrungen hier völlig kontraproduktiv. Du hast doch schon Deinen Lösungs-Pluspunkt. Möchtest Du noch Minuspunkte für andere vergeben?
Nö, nur Kommentare die absolut nichts mit dem Thread zu tun haben sind überflüssig, und bei dem passte nun mal überhaupt nichts auf die eigentliche Frage.Hallo,
Zitat von @140913:
und hat mit dem Thread überhaupt nichts zu tun da dein Regex hier überhaupt nichts vom TO gewünschte berücksichtigt.
und hat mit dem Thread überhaupt nichts zu tun da dein Regex hier überhaupt nichts vom TO gewünschte berücksichtigt.
Ich glaube, dass sich die meisten Forumsmitglieder nicht als alternativer Antwortgenerator verstehen. Viele schreiben hier, weil die den Erfahrungsaustausch schätzen. Die Threads helfen ja oft nicht nur dem TO sondern auch anderen, die hier später mal landen. In diesem Sinne sind solche Belehrungen hier völlig kontraproduktiv. Du hast doch schon Deinen Lösungs-Pluspunkt. Möchtest Du noch Minuspunkte für andere vergeben?