C++で正規表現エンジン?らしきものをやってみました
10行ですが、これ以上は厳しい・・・
#include <iostream>
struct a{a*b;char*c,*d;int e,f,g;};struct{int h(a*i,char*j,char*&k){a l={i,k,0,
99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k==
'?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k);}
int n(a*i,char*j,char*&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b
,j,o.d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,
char*j,char*&k){int p=*k++;if(p=='('||(p=j&&(p=='$'?!*j:((p-'.'?p==*j:*j)&&++j)
)&&n(i,j,k),0))while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,
char**s){return 2<r&&q.h(0,s[2],s[1]=(char*)(std::string("(.*?")+s[1]+")").
c_str())&&std::cerr<<"ktkr.\n";}
コマンドラインの引数に”正規表現”と”マッチ対象の文字列”をこの順番で与えて実行すると
マッチした場合だけ”ktkr”と出力します。使えるメタ文字: . $ ? ?? * *? + +? ( | )
^はグローバル変数を使わないと実装出来なそうだったので却下しました・・・
七行プログラミング part6
■ このスレッドは過去ログ倉庫に格納されています
106デフォルトの名無しさん
2008/07/19(土) 15:01:55■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 消費減税「極めてコスパ悪い政策」 渡辺・東大名誉教授が国会で意見 [蚤の市★]
- 「高度なAIは人類滅亡のリスクをもたらす」──生成AI「Claude」開発元の米Anthropicが投資家向け資料で言及★2 [♪♪♪★]
- 【野球】ドジャース、佐藤輝明の獲得の意向示す 海外メディア注目、新たなスターで「日本代表チーム」の人気はさらに加速と予測 [冬月記者★]
- 【映画】『踊る大捜査線 N.E.W.』が興収32億円で失速懸念 [ヴァイヴァー★]
- 「上げられるのは法人税だけ」防衛財源で浮上 経済界真っ向反発 [蚤の市★]
- 【芸能】土田晃之 埼玉県人おなじみの地方都市明かす 「本当に何もないんですけど、埼玉県人はみんな行く」 [冬月記者★]
- 【悲報】GMO社長「幼稚園、小学生のお子さんの情報を拡散するなど、人として有り得ません」 [834922174]
- 【悲報】GMOの被害者一号の小山さん、全てを失うww [347751896]
- 【速報】GMO熊谷、インターポールに通報wwwwwwwwwwwwwwwwwwww [398059782]
- GMO熊谷、ドヤ顔自撮り★3 [931948549]
- 【悲報】ハッカーに公開されたGMO利用者の個人情報、明らかに一線を超えているwwwwwwwwwww [404143271]
- 女向けエロ本ってなんのためにあるの?