Genau 6 Zeichen finden?
Homer
- php
Heyo ppl, wie finde ich per regulärem Ausdruck genau 6 Zeichen? Mein Problem ist, ich will eine Farbangabe im Hexformat aus einem Quellcode auslesen. [0-9-az]{6} findet aber auch etwas, wenn als Farbe zb. 123456x steht. Mit ^ und $ hab ich schon probiert, aber das hilft mitten in eine Wort natürlich nix. Also ich bin hier schon voll am verzweifeln, bitte helft!!
Hi Homer,
wer sagt denn, dass du von A bis _Z_ suchen lassen sollst? Probiere doch mal
/([0-9a-f]{6})/
Wär das was?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Sry, warn Verschreiber. Aber so probiere ichs ja schon, aber er so werden auch Angaben ala <span style="color:123456blabla;">text</span> akzeptiert.
Hi Homer,
Dann musst Du etwas genauer werden! In welchen möglichen Formen kann denn Dein Hex-Code auftreten?
auch Angaben ala <span style="color:123456blabla;">text</span>
Hier wäre nach color ein Doppelpunkt. Auf den kann man prüfen. Das mit dem blabla_Semikolon ist nicht valides CSS! Da käme nach dem Hex-Code ein Semikolon _bevor_ da andere zeichen folgen können. Auch auf das Semikolon kann man prüfen!
Jetzt schreibe ich mal was ins Unreine, das sich an Style-Angaben innerhalb von Style-Attributen (à la style="") hält:
/[:=] ?#?((?i)[0-9a-f]{6})/
Das sollte den Hex-Code in folgenden Varianten finden:
Probier's aus... Viel Spaß!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Kay, werds mal testn, thx!
Moin!
/[:=] ?#?((?i)[0-9a-f]{6})/
Das sollte den Hex-Code in folgenden Varianten finden:
- <span style="color: #ffcc88">
Das ist korrektes HTML und CSS.
- <table bgcolor=000000>
Das nicht.
- <p style="background-color:ffffff; text-align: justify;">
Und das auch nicht.
- Sven Rautenberg
Hi Sven,
Du hast natürlich recht. Aber die von mir angebrachten Schreibweisen finden (leider?) noch Verwendung, so dass dieser reguläre Ausdruck auch für diese HTML-Dokumente entsprechende Ergebnisse liefert. Das war meine Absicht. Ob der Ausdruck das Versprochene leistet, vermag ich nicht zu sagen, da ich ihn nie getestet habe.
Liebe Grüße aus Ellwangen,
Felix Riesterer.