Wenn ich dich richtig verstanden habe, willst du Variablen in einem String anhand ihres Namen finden und ersetzen???
Also wie bei
SQL-Variablen "
SQL := 'SELECT X FROM Y WHERE Z = :VAR;'"...
Ein Lösungsweg dafür wäre eine kontextfreie Grammatik wie BNF.
Schau mal auf
die Seite und saug' dir die Compos (Freeware).
Mit dem TParserAll bastel ich rum, falls ich endlich mal Zeit dazu finde.
Die Grammatik würde so aussehen (BNF-Property des TParserAll):
Delphi-Quellcode:
<letter> ::= a..z<letter>|a..z
<digit> ::= 0..9
<underline> ::= '_'<underline>|'_'
<dollar> ::= '$'<dollar>|'$'
<number> ::= <digit><number>|<digit>
<spec> ::= <number><spec>|<underline><spec>|<dollar><spec>|
<number>|<underline>|<dollar>
<id_body> ::= <letter><spec><id_body>|<letter><id_body>|
<letter><spec>|<letter>
<identifier> ::= ':'<id_body><identifier> |':'<id_body>
Damit findest du alle Variablen, die mit einem ":" beginnen incl. Start- & Endposition.
Ich hoffe ich konnte dir damit weiterhelfen.