AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

suche via Regulärer Ausdruck

Ein Thema von bernhard_LA · begonnen am 23. Sep 2014 · letzter Beitrag vom 24. Sep 2014
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.120 Beiträge
 
Delphi 11 Alexandria
 
#1

suche via Regulärer Ausdruck

  Alt 23. Sep 2014, 14:20
ich möchte über die Option Reguläre Ausdrücke nach allen Funktionen in meinem Projekt suchen
die als Aufrufparameter eine TQuery und einen String verwenden


^( * [TQuery] * [;] * [String] )$
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#2

AW: suche via Regulärer Ausdruck

  Alt 23. Sep 2014, 14:40
Code:
^function .*\(.*TQuery.*\;String.*\)\:
Wie es unabhängig von der Reihenfolge geht, weiß ich aus dem Kopf nicht, aber da kann man auch zweimal suchen.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: suche via Regulärer Ausdruck

  Alt 23. Sep 2014, 15:06
'^function' wird nicht klappen, wenn whitespaces dazwischen sind. Das Caret einfach weglassen.
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.120 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: suche via Regulärer Ausdruck

  Alt 24. Sep 2014, 10:57
^(*(?i)TQuery*(?i)String*)*;$

sollte eigentlich alle Strings mit Klammer auf ( , dann irgendetwas, Schlüsselwort TQuery, dann wieder irgendetwas bis zum Schlüsselwort String, zum Schluss das Ende des Parameter Aufrufes ');)' finden;


leider findet er keine Matches in meinen Source Code, was mache ich falsch ?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#5

AW: suche via Regulärer Ausdruck

  Alt 24. Sep 2014, 11:27
Es gibt nunmal bestimmte Zeichen, die bei regulären Ausdrücken eine Sonderbedeutung haben. In diesem Fall sind es vor allem die Klammern, die zur Gruppierung dienen. Wenn du tatsächlich nach einer Klammer suchen willst, musst du diese maskieren, d.h. einen Backslash davorsetzen.

Außerdem: ein Stern ist nur ein Quantifier, d.h. er sucht nach einer beliebigen Anzahl des direkt davor stehenden Zeichens/Ausdrucks. Da du aber kein Zeichen davor stehen hast, ist der Ausdruck so nicht gültig. Eine beliebige Anzahl eines beliebigen Zeichens/Ausdrucks wird bei RegEx durch
Code:
.*
bzw.
Code:
.+
repräsentiert (der Stern kann auch Null bedeuten, das Plus mindestens Eins).

Nach Ausbessern der beiden Punkte kommt dies heraus:
Code:
^\(.*(?i)TQuery.*(?i)String.*\).*;$
Ich weiß aber nicht, ob das nun passt oder ob da noch mehr Problempunkte drin sind (könnte mir vorstellen, dass das case-insensitive Pattern (?i) nicht ganz passt).

MfG Dalai
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#6

AW: suche via Regulärer Ausdruck

  Alt 24. Sep 2014, 15:59
Nach Ausbessern der beiden Punkte kommt dies heraus:
Code:
^\(.*(?i)TQuery.*(?i)String.*\).*;$
Die Folge
Code:
^\(
sucht nach einer Klammer-Auf am Zeilenbeginn, das dürfte kaum so gewollt sein.

Mit der Angabe

Zitat:
... Ende des Parameter Aufrufes
weiß ich allerdings nun gar nicht mehr, was eigentlich das Ziel ist.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz