いつもお世話になっています。
C言語で正規表現を使いたいのです。
regex.hのregexecを使えばできるのはわかったのですが、
肝心の正規表現がよくわかりません。
使用可能文字が0-9 a-z ! ? [ ] _ で、
条件として「_」が2個連続(1個or3個以上はok)は×
[/url]でかこまれたものは×
というものなのですが、
一度で表現してみるもうまくいかず、
わけて表現してみようとしても、ちゃんと判断できず、
困っております。。
以下、試してみた表現です。。
使用可能文字をチェック
"[0-9a-zA-z!\?\[\]_]+"
→コンパイル時点でwarningがでました
[/url]で囲まれるをチェック
"^[.*$]"
→コンパイルはとおりましたが、引数に入力した値をチェックにかけているのですが、
引数に [任意の文字] と指定するとうまく動きませんでした。。
「_」で2連続をチェック
"^_{2}"
→「_」3以上の連続でもひっかかりました。
正しい表現を、どなたか教えてください。
正規表現
Re:正規表現
> 使用可能文字をチェック
> "[0-9a-zA-z!\?\[\]_]+"
> →コンパイル時点でwarningがでました
A-z になってますが、それが原因ではないでしょうか。
> [/url]で囲まれるをチェック
> "^[.*$]"
> →コンパイルはとおりましたが、引数に入力した値をチェックにかけているのですが、
> 引数に [任意の文字] と指定するとうまく動きませんでした。。
"\[.*\]" で、いいのではないでしょうか?
> 「_」で2連続をチェック
> "^_{2}"
> →「_」3以上の連続でもひっかかりました。
"(?<!_)__(?!_)" で、出来ると思います。
(regex でうまくいくかどうかわかりませんが、鬼車で確認しました)
> "[0-9a-zA-z!\?\[\]_]+"
> →コンパイル時点でwarningがでました
A-z になってますが、それが原因ではないでしょうか。
> [/url]で囲まれるをチェック
> "^[.*$]"
> →コンパイルはとおりましたが、引数に入力した値をチェックにかけているのですが、
> 引数に [任意の文字] と指定するとうまく動きませんでした。。
"\[.*\]" で、いいのではないでしょうか?
> 「_」で2連続をチェック
> "^_{2}"
> →「_」3以上の連続でもひっかかりました。
"(?<!_)__(?!_)" で、出来ると思います。
(regex でうまくいくかどうかわかりませんが、鬼車で確認しました)