Suche regex lover!

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Suche regex lover!

Post by Timbalu »

Ich suche für CKEDITOR einen 8) regex lover, welcher eine wirklich universell verwendbare und super elegante regex aus der hohlen Hand zaubert, die:

Code: Select all

<div class="serendipity_imageComment_center" style="width: 500px">
<div class="serendipity_imageComment_img"><!-- s9ymdb:09 --><img alt="image alt text" class="serendipity_image_left" height="360" src="/uploads/example1.jpg" width="500" /></div>
<div class="serendipity_imageComment_txt">image1 comment example text</div>
</div>
und

Code: Select all

<div class="serendipity_imageComment_center" style="width: 82px">
<div class="serendipity_imageComment_img"><!-- s9ymdb:10 --><img alt="alt blah" class="serendipity_image_right" height="109" src="/_uploads/example2.serendipityThumb.jpg" width="82" /></div>
<div class="serendipity_imageComment_txt">example2 thumb comment blah</div>
</div>
und/oder

Code: Select all

<!-- s9ymdb:10 --><img alt="" class="serendipity_image_left" height="109" src="/uploads/example2.serendipityThumb.jpg" width="82" />
etc (DITO für serendipity_imageComment_right, serendipity_imageComment_left) abdeckt, also für alle denkbaren Optionen, die die Mediendatenbank für image inserts zulässt. Sie muss multiline \m und \s\S fähig, und eventuell \g greedy sein und einzelstehende Code 3 finden, ohne in 1 und 2 fündig zu werden.

Anyone? :)
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Suche regex lover!

Post by garvinhicking »

Hey,

oh ja, das finde ich auch immer was kompliziert. Hierfür muss man solche lookahead/lookbehind assertions (http://stackoverflow.com/questions/2973 ... mic-groups) einsetzen. Man müsste also diese <div> tags als lookahaead einbinden, und als lookbehind auch dafür sorgen dass kein <img> ausserhalb von den zugehörigen schließenden </div>s im ungreedy mode gematcht wird.

Ich versuche mir das nächste Woche mal genauer anzuschauen. Kannst Du noch sagen aus welchem Grund Du nur Code 3 matchen willst, was soll das später machen?

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Suche regex lover!

Post by Timbalu »

garvinhicking wrote:Kannst Du noch sagen aus welchem Grund Du nur Code 3 matchen willst, was soll das später machen?
Da hast du mich falsch verstanden. Code drei soll nur auch alleine für sich gefunden werden, auch wenn weitere matches für 1 oder 2 gefunden sind/werden. Ich will alle drei Möglichkeiten und dito für left und right, also alles bunt durcheinander in allen möglichen Kombinationen gematcht haben. Grund ist, dass CKEDITOR die Serendipity eigene Umbastelung von Image Widgets zerhaut. Dafür benötige ich eine protectedSource Rule.
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Suche regex lover!

Post by garvinhicking »

Hi!

Reicht es dann nicht einfach nur nach:

Code: Select all

preg_match('@<!\-\- s9ymdb:[^>]+><img.*src="([^"]+)@imsU', $text, $matches);
zu suchen? Das würde alle img src attribute raussuchen von allen Fällen die es gibt.

Noch verstehe ich halt nicht, was Du matchen möchtest, bzw. was Du durch was ersetzen möchtest.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Suche regex lover!

Post by Timbalu »

:) Das wäre schön einfach, aber es geht darum, per javascript regex, den gesamten eingefügten image Teil der MediaLibrary, mit allen Bedingungen (und meine drei aufgezählten sind ja längst nicht alle, wenn ich noch popup etc dazu zähle) zu erfassen und innerhalb von CKEDITOR als protectedSource auszugeben, damit dieser die Finger davon lässt!
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Suche regex lover!

Post by garvinhicking »

Hi!

Code: Select all

@(<div class="serendipity_imageComment[^>]+>(<div class="serendipity_image[^>]+>.*</div>)*.*</div>|<!-- s9ymdb-->.*/>)@
Ungetestet. Die Idee ist: Schütze jeden HTML-Code, der entweder innerhalb eines serendipity_imagecomment* DIVs steht (und darin dürfte beliebig viele serendipity_image divs kommen), oder wo ein <!--s9ymdb-->(bild) vorkommt.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Suche regex lover!

Post by Timbalu »

Zack! Ich werde das testen, und melde mich, sobald wieder Luft ist! :)
Danke vorerst!
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Suche regex lover!

Post by Timbalu »

Nachdem ich ein paar Stunden "Spaß" mit deiner Regex hatte..., bin ich endlich auf die ultimative Lösung gekommen, die auch noch extrem einfach war. :D Simplicity is beautiful!

Thanks anyway!
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Post Reply