MyBB.de Forum
Regex JavaScript/JQuery für wörtliche Rede - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Regex JavaScript/JQuery für wörtliche Rede (/thread-33183.html)



Regex JavaScript/JQuery für wörtliche Rede - Amaryllion - 23.02.2016

Halli-Hallo,

ich würde mir gerne ein Plugin schreiben, das per Knopfdruck wörtliche Rede in meinen Posts highlighted. Also beginne ich mal damit, mir den richtigen RegEx dafür herauszusuchen. Da habe ich schon Probleme mit, weil ich nicht gerade der RegEx-Spezialist bin...

Ich habe zwei RegEx-Seiten gefunden, die mir meinen Code prüfen, beide kommen zu unterschiedlichen Ergebnissen. Was natürlich doof ist.

Mein Ausgangspunkt:
RegEx
Code:
([„]([^„]+)[“]|[“]([^“]+)[”]|["]([^"]+)["])
Option
Code:
/g

Beispieltext: 3 mal der gleiche Absatz mit den 3 möglichen Varianten von wörtlicher Rede:
Zitat:Then he spoke! Finally! Reached out his hands. He wanted… the dead baby rabbit? That was what this was all about? Aiden just wanted the little thing in his hands? "Well, just ask, right?" Grayson tried a smile and laid the small, dead and very bloody body into his brother’s hands. "Don’ you worry. Just ask. You can have it." Aiden could get everything Grayson had, there was never a doubt. He even would have given him any ice cream or sweet he ever wanted. Because it was Aiden. "Is everythin' okay now?" Was Aiden happy now? Well…. as happy as Aiden could get. He didn’t look like it. But he never looked happy, anyway.


Then he spoke! Finally! Reached out his hands. He wanted… the dead baby rabbit? That was what this was all about? Aiden just wanted the little thing in his hands? „Well, just ask, right?“ Grayson tried a smile and laid the small, dead and very bloody body into his brother’s hands. „Don’ you worry. Just ask. You can have it.“ Aiden could get everything Grayson had, there was never a doubt. He even would have given him any ice cream or sweet he ever wanted. Because it was Aiden. „Is everythin’ okay now?“ Was Aiden happy now? Well…. as happy as Aiden could get. He didn’t look like it. But he never looked happy, anyway.


Then he spoke! Finally! Reached out his hands. He wanted… the dead baby rabbit? That was what this was all about? Aiden just wanted the little thing in his hands? “Well, just ask, right?” Grayson tried a smile and laid the small, dead and very bloody body into his brother’s hands. “Don’ you worry. Just ask. You can have it.” Aiden could get everything Grayson had, there was never a doubt. He even would have given him any ice cream or sweet he ever wanted. Because it was Aiden. “Is everythin’ okay now?” Was Aiden happy now? Well…. as happy as Aiden could get. He didn’t look like it. But he never looked happy, anyway.



Ich zeig erstmal die Seite, die ihn mit diesem Code genau so darstellt, wie ich das Ergebnis gern hätte:
http://scriptular.com/

   


Folgende Seite markiert in dem selben Code dann allerdings markierte Abschnitte im Beispieltext, die ich logischerweise nicht gern hätte:
https://regex101.com/r/eZ1gT7/306

   


Kann mir jemand helfen? Was ist nun richtig?
Oder vielleicht noch wichtiger: Wie wäre der richtige RegEx, wenn meiner falsch ist? Smile

LG
Ama


RE: Regex JavaScript/JQuery für wörtliche Rede - MrBrechreiz - 23.02.2016

Nur mal so als Idee von mir. MyBB hat ja auch seinen highlight regex, vieleicht könnte dieser auch bei dir funktionieren.


RE: Regex JavaScript/JQuery für wörtliche Rede - Amaryllion - 23.02.2016

Aber der sucht Begriffe, oder? Nicht Text innerhalb von zwei Zeichen. Smile


RE: Regex JavaScript/JQuery für wörtliche Rede - MrBrechreiz - 23.02.2016

Wenn man die gesuchte Passage eingibt, wird, wenn vorhanden, gehighlight. Einzelne Wörter leider aber auch, wie ich eben sehe. Mit der Suchfunktion kann man dies gut testen.


RE: Regex JavaScript/JQuery für wörtliche Rede - Amaryllion - 23.02.2016

Ich suche alles, was zwischen zwei Anführungszeichen vorkommt, was gebe ich denn dann in die Suchfunktion ein?


RE: Regex JavaScript/JQuery für wörtliche Rede - StefanT - 23.02.2016

(23.02.2016, 10:15)Amaryllion schrieb: Ich habe zwei RegEx-Seiten gefunden, die mir meinen Code prüfen, beide kommen zu unterschiedlichen Ergebnissen. Was natürlich doof ist.
Es gibt unterschiedliche Implementierung für reguläre Ausdrücke, jede Script-Sprache hat da ihre Besonderheiten. Falls du das ganze also mit PHP umsetzen willst, teste es direkt mit PHP.

Ansonsten probiere es mal mit folgendem Regex:
Code:
([„]([^„“]+)[“]|[“]([^“”]+)[”]|["]([^"]+)["])



RE: Regex JavaScript/JQuery für wörtliche Rede - Amaryllion - 23.02.2016

Hey, total klasse! Vielen Dank! Smile

Ja, ich will die Umsetzung erstmal mit Javascript versuchen. Somit ist das genau das Richtige. Smile


RE: Regex JavaScript/JQuery für wörtliche Rede - Amaryllion - 23.02.2016

Wah, ich stelle gerade fest, mir fehlt noch was zum endgültigen Glück. Könntest Du mir den von Dir gegebenen RegEx noch dahingehend ergänzen, daß er KEINE Anführunsgzeichen berücksichtigt, die INNERHALB von Tags vorkommen?

Also beispielsweise in sowas hier:
Code:
<span class="xyz">

Weil... das zerwürfelt natürlich alles. Rolleyes


RE: Regex JavaScript/JQuery für wörtliche Rede - Amaryllion - 24.02.2016

So, wenn man nicht jede Idee gleich ausprobiert, muß man viel editieren... Wink
Ich bin jetzt bei diesem hier gelandet:
Code:
(?![^<]*>)([„]([^„“]+)[“]|[“]([^“”]+)[”]|["]([^"]+)["])(?![^<]*>)

Der funktioniert:
https://regex101.com/r/eZ1gT7/308