[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: regexp frage



Hallo,

Roland M. Kruggel wrote:
> <code>
> function aubb_anschrift_delete(_rowid, _para1)
>   define  _rowid    int,
>           _para1    char(10)
>   define  rid       int,
>           txt       char(20),
>           txt_2     char(1)
> 
>   let rid = _rowid
>   let txt = "text ",_para1
>   let txt_2 = ""
> </code>
> 
> Folgedes soll gemacht werden.
> Parameter fangen alle (bei mir zu mindestens) mit einem Unterstrich 
> an. Diese sollen markiert werden. Die Variablen die in der Mitte 
> einen Unterstrich habe sollen nicht markiert werden, es sei denn sie 
> haben am Anfang auch einen Unterstrich. Vor der Parametervariablen 
> können steht eins von den folgenden Zeichen: 
> ,=( <space> <tab> <oder nichts>
> 
> Die Parametervariable endet mit einem der folgenden Zeichen
> , <space> <tab> <zeilenende>
> Ich habe folgenden regexp definiert
>   \s*[,=(\t ]_[a-z_]*

Da hast du die whitespaces vorher dabei. Ich würde stattdessen ein \b
(word boundary nehmen):

\b_[a-zA-Z0-9_]+
Wobei ich jetzt nicht weiß, welche Buchstaben alle in so einem Ding drin
sein dürfen.

Eine andere Möglichkeit wären non-greedy Ausdrücke:
\b_.*?\b
oder so.

Viel Spass beim Experimentieren,
Moritz


> Es werden alle Parametervariablen markiert, außer die '_rowid' im 
> Funktionskopf. Ausserdem wird das Zeichen vor dem _ auch markiert. 
> [,=(\t ] Das soll nicht sein.
> 
> Kann jemand helfen?
> 


-- 
Moritz Lenz
http://moritz.faui2k3.org/

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: