Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Regex-Problem (https://www.delphipraxis.net/77853-regex-problem.html)

3_of_8 25. Sep 2006 20:09


Regex-Problem
 
Morgen.

Ich hab einen String $a.

Jetzt möchte ich, dass folgender String gematcht wird:

blablabla $a blablabla

Folgender String nicht:

blablabla$a blablabla

Folgender String auch nicht:

<x "$a">

Und auch der nicht:

<a ...>blablabla $a blablabla</a>

Wie mache ich das? Das erste, was mir einfällt, ist:

#\b($a)\b#ise

Das Problem ist: <x "$a"> wird trotzdem gematcht, <a ...>blablabla $a blablabal</a> auch.

Thorben77 25. Sep 2006 20:43

Re: Regex-Problem
 
Code:
#[a-z]+\s$a\s[a-z]+#ise
So vielleicht?!

Edit: Die Leerzeichen vergessen.

Khabarakh 25. Sep 2006 20:50

Re: Regex-Problem
 
Bei so wenig Input rate ich einfach mal:
Code:
^[\w\s]*?\s\$a\s[\w\s]*?$
Gefällts?

[edit]
Wenn es darum geht, dass $a außerhalb aller Tags stehen muss: Nicht möglich mit Regexes.
[/edit]
[edit2]
Wenn allerdings feststeht, dass es keine verschachtelten Tags gibt, kannst du so etwas in der Art versuchen:
Code:
((?<=<\\[^>]+)>|^)[\w\s]*?\s\$a\s....
[/edit2]

3_of_8 25. Sep 2006 22:48

Re: Regex-Problem
 
Das habe ich mir fast schon gedacht, nur das PHPBB könnte das eben auch... Egal, ich bin gerade dabei, das Problem mithilfe eines Stacks, eines Baumes und einem deterministischen endlichen Automaten zu lösen oder wie das Ding heißt.

So müsste es dann gehen, wenn ich eine Baumstruktur habe, dann kann ich nämlich die Akronyme ($a ist ein Akronym) schon vor der Ersetzung BBCode->HTML-Tag einfügen und habe dadurch volle Kontrolle darüber, in welchem Tag so ein Ding auftreten kann.


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