Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Regex: Frage zur abfrage (https://www.delphipraxis.net/146114-regex-frage-zur-abfrage.html)

MarioM. 18. Jan 2010 08:07

Re: Regex: Frage zur abfrage
 
Lass mal die Wortgrenzen weg; damit scheint die Komponente, respektive die PCRE-Lib, Probleme zu haben.

Ich habe mal eine Support-Anfrage gestellt.

Chefx 18. Jan 2010 15:57

Re: Regex: Frage zur abfrage
 
Zitat:

Zitat von MarioM.
Lass mal die Wortgrenzen

Was meinst du damit?

MarioM. 18. Jan 2010 16:19

Re: Regex: Frage zur abfrage
 
Code:
\b

Chefx 18. Jan 2010 16:40

Re: Regex: Frage zur abfrage
 
könnte ich mir da auch eine \b selbst erstellen, weil der sucht ja alles zusammen was den im weg kommt :stupid:

MarioM. 18. Jan 2010 16:50

Re: Regex: Frage zur abfrage
 
Zitat:

Zitat von Chefx
könnte ich mir da auch eine \b selbst erstellen, weil der sucht ja alles zusammen was den im weg kommt :stupid:

Hä?

Chefx 18. Jan 2010 16:58

Re: Regex: Frage zur abfrage
 
sorry vielleicht dumm ausgedrückt :-D
Er soll ja nacht Wörtern suchen und da brauch ich ja eine Beschränkung (also leerzeichen bis leerzeichen usw.).

also der Beispieltext:

Zitat:

das ist ein Text über Reguläre Ausdrücke
und die Suchergebnisse:
Zitat:

0: d... 13: l 14: ä 15: c 16: k
(es wurden doppelte Buchstaben weggelassen ;-) )

Code:
(\f|\n|\r|\t|\v) [A-Za-z0-9äöüÄÖÜß]*[A-Za-zäöüÄÖÜß]+[A-Za-z0-9äöüÄÖÜß]*(\f|\n|\r|\t|\v)
ich hab das so probiert aber da findet der nix

Chefx 19. Jan 2010 06:32

Re: Regex: Frage zur abfrage
 
sorry das ich pushen muss, :roll:
aber ich brauch das jetzt richtig dringend. Ich weiß das ihr keine Roboter seit aber vielleicht hat ja noch einer eine Idee (Bitte nicht hauen) :-D

Ich hab auch diese Variante probiert aber das hat auch nicht geklappt:
Code:
[^A-Za-z0-9äöüÄÖÜß]+ [A-Za-z0-9äöüÄÖÜß]*[A-Za-zäöüÄÖÜß]+[A-Za-z0-9äöüÄÖÜß]*[^A-Za-z0-9äöüÄÖÜß]+

MarioM. 19. Jan 2010 07:16

Re: Regex: Frage zur abfrage
 
Also das Problem ist, dass \b auch Umlaute als Wortgrenzen interpretiert. Es gilt nun also, Dir mittels bspw. Lookarounds selber Wortgrenzen zu 'bauen', die das nicht tun.

Khabarakh 19. Jan 2010 10:01

Re: Regex: Frage zur abfrage
 
Zitat:

Zitat von Chefx
und da brauch ich ja eine Beschränkung (also leerzeichen bis leerzeichen usw.).

Eigentlich nicht, denn ein Regex ist greedy.
Delphi-Quellcode:
[A-Za-z0-9äöüÄÖÜß]*[A-Za-zäöüÄÖÜß]+[A-Za-z0-9äöüÄÖÜß]*
sollte also funktionieren, siehe z.B. http://www.gskinner.com/RegExr/

MarioM. 19. Jan 2010 10:10

Re: Regex: Frage zur abfrage
 
Also bei mir funktioniert das Ganze auch ohne Wortgrenzen; logisch, da \p{N} und \p{L} (Unicode wg. Umlauten) keine Whitespaces berücksichtigen. Somit ist bei einem gefundenen Whitespace (auch Ende eines Wortes) Sense. Und da sie, wie Khabarakh richtigt sagt, von Natur aus gierig sind, findet die Engine alle Vorkommen in Deinem Text.

Code:
[\p{N}_]*[\p{L}_]+[\p{N}_]*
liefert mir für folgenden Text
Zitat:

1dasö ist einü Teöxt2 12345 1über ü2323 1Reguläre Ausdrücke
mit der PCRE-Engine folgende Ergebnisse:
Zitat:

1dasö
ist
einü
Teöxt2
1über
ü2323
1Reguläre
Ausdrücke
Vielleicht sollte man den Unterstrich auch noch berücksichtigen.

Edit: zu spät.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz