RegEx Abfrage (Anfänger)

Ghost_Rider_R

Lieutenant
Registriert
Nov. 2009
Beiträge
752
Hallo zusammen,

ich bin neu im Thema Regular Expressions und versuche nur den rechten Teil von UNION zu maskieren, also alles innerhalb der roten Markierung:

d.h. [Leerzeichen]UNION[Leerzeichen] aber nur wenn danach nicht das Wort ALL kommt.

1660033620991.png

Kann mir da vielleicht jemand weiterhelfen?
Ich verwendet C# und https://regex101.com/ zur Erstellung des Ausdrucks.

Vielen Dank für eure Hilfe.

LG Ghost
 
ist ja korrekt. der eine Match wurde korrekt erkannt (blaub hinterlegt)


Edit:
Blödsinn, du willst ja nur das "UNION" haben. ohne leerzeichen oder sonstwas. war zu schnell. Antwort ist unten.
 
  • Gefällt mir
Reaktionen: PHuV, Oelepoeto und Ghost_Rider_R
Super, danach habe ich gesucht, vielen Dank.
Ergänzung ()

Mal noch eine andere Frage, angenommen, ich würde nur nach UNION suchen, bei dem danach ALL kommt, wobei ich nur das UNION maskieren möchte. Wäre bei solchen Suchanfragen dann Lookahead bzw. Lookbehind das richtige Stichwort?
 
Zuletzt bearbeitet:
Genau ja, das wäre positive lookahead
 
Kleine Anmerkung:
Ich hab ja immerein bisschen Bauchschmerzen wenn man solche Dinge via RegExps löst. Weil es muss ja nur mal irgendwo das Wort UNION zum Beispiel das Bezeichner oder sonstwas im Statement auftauchen und dann funktionieren solche Quick&Dirty-Lösungen nicht mehr.

Ich bin dann eher ein Fan davon solche Sachen sauber zu parsen. Da gibts ja auch in aller Regel fertige Bibliotheken/Funktionen für. Und wenn man sowas hat, sollte man in solchen Fällen dann lieber sowas nehmen als selbstgebastelte RegExp-Fummeleien.
 
  • Gefällt mir
Reaktionen: JackForceOne, PHuV und BeBur
In meinem Fall geht es einfach nur um ein kleines Tool für mich, welches mir meine SQL-Abfragen nach meinen Gewohnheiten formatiert, da reicht mir die Quick&Dirty Lösung. Ich wusste bis gestern nicht, dass es RegEx für sowas gibt, das ist ja ein durchaus sehr mächtiges Werkzeug, wenn man sich an die Syntax gewöhnt hat. Das kannte ich seither nur vom LIKE Operator in SQL.
 
Wir haben uns in der Arbeit ein RegEx-Assembly für den SQL Server gebaut, der aber leider etwas zu speicherhungrig ist für großflächige Verwendung
 
  • Gefällt mir
Reaktionen: Ghost_Rider_R
Da kenn ich mich leider zu wenig aus für eine fundierte Aussage. Prinzipiell kann aber C# Code am SQL Server eingebunden werden. In dem Fall wurde wohl eine regex-Library verwendet in eine TSql-Facade (heißt das glaub ich) zur Verfügung gestellt. Das ganze muss als Assembly verpackt und am Server eingebunden werden, danach können Funktionen oder Prozeduren darüber gelegt werden um die Funktionalität im Hintergrund aufzurufen.

Aber es gibt hier bestimmt einige Entwickler die das wirklich erklären können, oder zumindest die richtigen Begriffe dafür haben. Bin selber leider aktuell nur DB-Entwickler und kenn mich mit Objektorientierte Sprachen nur minimal aus..
 
  • Gefällt mir
Reaktionen: Ghost_Rider_R
@Oelepoeto Vielen Dank für den Hinweis, das war mir bislang nicht bekannt, gibt aber durchaus Sinn. Bislang habe ich noch keine Funktionen dringend vermisst, aber so kann man sich ja auch das ein oder andere nachentwickeln, falls einem doch mal eine Funktion fehlt. Sehr interessant 👍
 
  • Gefällt mir
Reaktionen: Oelepoeto
Zurück
Oben