pasido
Goto Top

RegEx ganzer Text bis auf ein bestimmtes Wort markieren

Hallo zusammen,

kann mir jemand mit regexe helfen.
Ich sollte einen Text kpl makieren bis auf ein bestimmtes Wort.

Leider kann ich das ganze nur mit regex machen, da es von dem besthenden Programm so vorgegeben ist.


Danke für eure Hilfe

Pasido

Content-Key: 483491

Url: https://administrator.de/contentid/483491

Printed on: April 20, 2024 at 05:04 o'clock

Member: mayho33
mayho33 Aug 10, 2019 at 19:35:53 (UTC)
Goto Top
Hi!

Du meinst du musst eine Bedingung per Regex umsetzen, weil ein anderes Programm eine MatchCollection oder sowas erwartet?
Und das Ergebnis soll irgendwo in einer TextBox (??) highlighted werden? Verstehe nicht ganz was du meinst.

Powershell (exemplarisch):

$highLight = @()

Foreach ($wordInTxt in $meineTextBox.text.Split(' '))  
{
    if (! [Regex]::Match($wordInTxt, "DoNotHighLight", [RegexOption]::IgnoreCase).Success)  
   {
        $highLight += $wordInTxt
   }
}
...
...
Member: Pasido
Pasido Aug 10, 2019 at 20:57:19 (UTC)
Goto Top
Hallo mayho33,

danke für deine Antwort. Du hast recht, in diesem Programm kann ich eine Liste anlegen mit suchen und ersetzen.
Suchen kann ich entweder direkt bsp. Sommer;Winter oder [^(Sommer).*];Winter. Ich möchte gerne den klp. Text ersetzen wenn Sommer gefunden wird.
Ich hoffe ich habe mich etwas besser ausgedrückt.
Mitglied: 140777
140777 Aug 13, 2019 updated at 09:04:56 (UTC)
Goto Top
Zitat von @Pasido:
Suchen kann ich entweder direkt bsp. Sommer;Winter oder [^(Sommer).*];Winter.
Ich möchte gerne den klp. Text ersetzen wenn Sommer gefunden wird.
In dem Fall reicht ja .*Sommer.*
Das matcht den kompletten Text wenn das Wort Sommer irgendwo im Text existiert.
https://regex101.com/r/LyukI0/1
Member: Pasido
Pasido Aug 13, 2019 at 09:22:50 (UTC)
Goto Top
Hallo coding,

sieht schon mal gut aus. Viel einfacher als gedacht und versucht.
Leider wird nicht alles in meinem Text markiert. Nach dem Enter wird der Text nicht mehr erkannt.
gibt es da auch eine Lösung ?

vielen Dank
Mitglied: 140777
140777 Aug 13, 2019 updated at 09:31:43 (UTC)
Goto Top
Zitat von @Pasido:
Leider wird nicht alles in meinem Text markiert. Nach dem Enter wird der Text nicht mehr erkannt.
Was wird nicht mehr erkannt?? Wir kennen die Funktionsweise deines Programms nicht!
gibt es da auch eine Lösung ?
Klar wenn man mal wüsste wie dein Programm überhaupt arbeitet und was es tatsächlich als Text erwartet und mit welcher Regex-Bibliothek das Ding arbeitet. Fragen über Fragen!
Das Regex von oben funktioniert normalerweise in jeder x beliebigen Regex Bibliothek simpelste Basics.
Je nach dem wie dein Programm arbeitet müssen eventuell Optionen gesetzt werden das Newline Zeichen durch die punkte gematcht werden usw. oder aber das Programm erwartet andere Strings als die die du ihm übergibst wir kennen dein Programm ja nicht face-sad.
Member: Pasido
Pasido Aug 13, 2019 at 11:01:31 (UTC)
Goto Top
Habe mit dem Link den du mir geschickt hast getestet. Sobald ich dort ein Enter setze wird der Text nicht mehr makiert. Das Programm das ich hier habe verhällt sich identisch mit dem Link von dir.
Mitglied: 140777
Solution 140777 Aug 13, 2019 updated at 11:07:30 (UTC)
Goto Top
Zitat von @Pasido:

Habe mit dem Link den du mir geschickt hast getestet. Sobald ich dort ein Enter setze wird der Text nicht mehr makiert. Das Programm das ich hier habe verhällt sich identisch mit dem Link von dir.
Du brauchst nur die "Option" s (für Newline matches durch den Punkt) zusätzlich setzen dann klappt auch das ...
https://regex101.com/r/LyukI0/2
oder alternativ schreibst du (?s) vor den Regex wenn du die Option s in deinem Programm nicht definieren kannst
https://regex101.com/r/LyukI0/3

Die Klammern um das Word kannst du dir auch sparen, habe die hier nur der Anschauung wegen gesetzt damit man sieht das im Text das Wort vorkommt.
Member: Pasido
Pasido Aug 13, 2019 at 12:04:48 (UTC)
Goto Top
Hey coding,

das war es. Funktioniert .


Vielen Dank
Mitglied: 140777
140777 Aug 13, 2019 updated at 12:08:37 (UTC)
Goto Top
Gut. Dann fürs nächste mal dran denken gleich alle nötigen Details in den Post setzen face-wink.
Member: Pasido
Pasido Aug 18, 2019 at 11:08:41 (UTC)
Goto Top
Hallo,

kann mir noch mal jemand helfen. Ich möchte diese mal das ganze umgekehrt.

Ich hätte gerne das der ganze Text markiert ( gefunden) wird wenn ein gewisses Wort( Beispiel Sommer ) nicht vorhanden ist.

Beispiel1: "Text Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam"

dieser Text sollte kpl. markiert werden weil das Wort Sommer nicht vorhanden ist.

Beispiel2: Lorem ipsum dolor Sommer sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam

dieser Text sollte nicht markiert werden weil das Wort Sommer vorhanden ist.


@ coding vieleicht hast du noch einmal eine Lösung für mich

Danke
Mitglied: 140777
Solution 140777 Aug 18, 2019 at 12:14:33 (UTC)
Goto Top
Negative Lookaround ist dein Freund
https://regex101.com/r/RslTVa/1
Member: Pasido
Pasido Aug 18, 2019 at 17:11:33 (UTC)
Goto Top
Hey coding,

und wieder hast du mein Problem gelöst.

vielen Dank