関数名の強調表示でNo.04546
ドラゴン さん 99/11/30 15:15
 
関数名の前に*が付いていると強調表示できないのですが、どういう
正規表現で定義したらいいか解りません。ちなみに現在は下記の様に
なってます。

^[_a-zA-Z][^\(=]* [_a-zA-Z0-9:]+\([^;]*$

強調するは関数としては以下の様な感じです。

void *get_ppr(int size, int num)
{
    :
    :
}

でvoid *get_pprという行が強調表示したい訳です。
どなたかご教授下さいませ!!

[ ]
RE:04546 関数名の強調表示でNo.04547
きいろいまふらあ さん 99/11/30 16:15
 
'*'自体は'\*'で表現できます。

>^[_a-zA-Z][^\(=]* [_a-zA-Z0-9:]+\([^;]*$

^[_a-zA-Z][^\(=]* \*?[_a-zA-Z0-9:]+\([^;]*$
                  ~~~
ということでしょうか?

void get_ppr(int size, int num)
void *get_ppr(int size, int num)

にはマッチします。

void *(int size, int num)
void **get_ppr(int size, int num)
void g*et_ppr(int size, int num)
void *g*et_ppr(int size, int num)

にはマッチしません。

はずしてたら読み流して下さい。(^^;

[ ]
RE:04547 関数名の強調表示でNo.04548
ドラゴン さん 99/11/30 16:26
 
きいろいまふらあさん、こんにちは、
早速のご教授ありがとう御座います。

>'*'自体は'\*'で表現できます。
はい、これは知ってました。
>
>>^[_a-zA-Z][^\(=]* [_a-zA-Z0-9:]+\([^;]*$
>
>^[_a-zA-Z][^\(=]* \*?[_a-zA-Z0-9:]+\([^;]*$
>                  ~~~
>ということでしょうか?
>
>void get_ppr(int size, int num)
>void *get_ppr(int size, int num)
>
>にはマッチします。
これはOKです。

>void *(int size, int num)
>void **get_ppr(int size, int num)
>void g*et_ppr(int size, int num)
>void *g*et_ppr(int size, int num)
>
>にはマッチしません。
2番目のこれ
void **get_ppr(int size, int num)
もマッチできるともっといいですね!!

[ ]
RE:04548 関数名の強調表示でNo.04549
安久津 さん 99/11/30 17:13
 
こんにちは安久津といいます。

>void **get_ppr(int size, int num)
>もマッチできるともっといいですね!!
次の正規表現でOKです。

^[_a-zA-Z][^\(=]* \**[_a-zA-Z0-9:]+\([^;]*$

ではでは。

[ ]
RE:04548 関数名の強調表示でNo.04563
きいろいまふらあ さん 99/12/01 08:51
 
>void **get_ppr(int size, int num)
>もマッチできるともっといいですね!!

^[_a-zA-Z][^\(=]* \**[_a-zA-Z0-9:]+\([^;]*$

とすれば
void get_ppr(int size, int num)

void *get_ppr(int size, int num)

void **get_ppr(int size, int num)

void ****************get_ppr(int size, int num)
もおっけーです。

?は直前の1文字が0個か1個
+は直前の1文字が1個以上連続
*は直前の1文字が0個以上連続

です。通常の検索のときも同じです。

[ ]