Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [RegEx] Wordbreaks (https://www.delphipraxis.net/78076-%5Bregex%5D-wordbreaks.html)

3_of_8 28. Sep 2006 17:11


[RegEx] Wordbreaks
 
Morgen.

Ich habe einen String, der möglicherweise mehrere Substrings
Code:
:D
enthält.

Ich will nun per preg_replace alle Vorkommnisse des Substrings, die von Wordbreaks umgeben sind, matchen und ersetzen.

Mein erster Versuch:
Code:
'#\b:D\b#s'
Sieht schon mal ganz gut aus. Problem:
Code:
asdf:D asdf
wird auch gematcht. Warum? Keine Ahnung.

Wie kann ich das umgehen? (Ich muss dazusagen, dass der angegebene Substring nur ein Beispiel ist. Das könnte so ziemlich jeder String sein)

3_of_8 28. Sep 2006 17:29

Re: [RegEx] Wordbreaks
 
Tja, das wars auch schon. Mir ist gerade aufgefallen, dass ich das recht einfach mit einem [^A-Za-z0-9] hinkriegen kann.

Dax 28. Sep 2006 17:30

Re: [RegEx] Wordbreaks
 
Und was machst du bei ä? Â?

SubData 28. Sep 2006 17:32

Re: [RegEx] Wordbreaks
 
sich in den Hintern beißen -gg-

3_of_8 28. Sep 2006 17:51

Re: [RegEx] Wordbreaks
 
Äääh... Umlaute... Hmm... Wenn ich die hinzufüge, gehts dann? :gruebel:

Also welche Zeichen müssen alle rein?

Dax 28. Sep 2006 17:54

Re: [RegEx] Wordbreaks
 
Wie wärs mit der ersten Echse in dieser Variation?
Code:
\b(?<!\s):D<(?!\s)\b

3_of_8 28. Sep 2006 17:55

Re: [RegEx] Wordbreaks
 
Was meinst du jetzt damit? Wozu die Assertions?

Dax 28. Sep 2006 18:00

Re: [RegEx] Wordbreaks
 
Damit nur gematcht wird, wenn Wordbreaks, die nicht Whitespaces (die ja Wordbreaks sind) sind, zwischen String und dem Zeug außenrum stehen.

3_of_8 28. Sep 2006 18:10

Re: [RegEx] Wordbreaks
 
Also funktionieren tut es schonmal nicht...

Meflin 28. Sep 2006 18:50

Re: [RegEx] Wordbreaks
 
Weis zwar nicht genau was du willst (was bitte schön ist ein wordbreak...) aber wie wärs damit:
Code:
\s(.*)(:D)(.*)\s
sollte alles finden was von 2 Whitespaces umgeben ist (und somit ein allein stehendes Wort ist)



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 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