完全漢字対応正規表現ライブラリ「モナー」
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@#+*/%
NGNGASCII用の正規表現ライブラリの修正版ではなく、完全にゼロから漢字の処理を前提として設計しています。
現在はLinux/FreeBSDなどのGNU環境で使用可能です。
Vine Linuxなど、システムが「wchar_t」をUNCODEで実装している場合には UNICODEが使用できます。
心ゆくまでXMLやCGIの処理において完全漢字対応の正規表現処理の世界を堪能してください。
http://www.fuel.co.jp/~bull/monner/doc/index.html
0002デフォルトの名無しさん
NGNGwXXXXってまだ全然標準じゃない気がする。
0003名無しさん@#+*/%
NGNGでたぶんすぐできるけど。
つーかVisual C++なんかではもうオッケーなんで
他のプローガーのSTL使用商用インテルOEMコンパイラは
当然サポートすると思うし、標準になりつつあるよ。
gccもちょっと直せばすぐ使えるし。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGライブラリ自体は良いと思うが、
名前をなんとかしてくれ
0007名無しさん@#+*/%
NGNGgcc用のはフリー。
Windowsの商用は似た仕様の別物としてバイナリ配布です。
C版も考えてます。
>ライブラリ名にひねりがなさすぎる
これは前座。本命はDFAバージョンだから執着してないの。
0008デフォルトの名無しさん
NGNGDFA と Boyer-Moore を使った日本語regexpライブラリとしては
rexp があるけど、これと比べてどうですか?
0009名無しさん@#+*/%
NGNGインタープリターやDBのロジックをいじらず、
速度を上げつつワイドにするフロントエンドの
ためにある。
僕のにはブレイクスルーがあるんだ。
0010デフォルトの名無しさん
NGNG1人日で書けると思うけど…
DFA で back-reference を実現するのって難しいよ?
大丈夫?
0011名無しさん@#+*/%
NGNGそもそもlex系にback-referenceは必要ないです。
n通り照合したらアクション全部呼ばれるんですかね。
0012デフォルトの名無しさん
NGNGあと lex系と egrep系って用語もわかんないです。
探索アルゴリズムの話ですか? パターンの表記の話ですか?
0013デフォルトの名無しさん
NGNGおれも、理論だけ知ってて作れる気になってる人か、
すでに作ったことがある人のどっちかだと思った
(そういうのは「1日でつくれる」とは言わないと思う)。
後者は明らかに挙動の話でしょう。
0014名無しさん@#+*/%
NGNG001510
NGNG「モナー」のページを見て、すごく素人っぽいと
感じて「がんばって作ったんだろうけど、この程度
のものをブレイクスルーなんて言うのは恥ずかしい
なあ」と思った次第です。lex っぽい使い方を想定
しているようだけど、そんな限定された使い方しか
できないなら、なおさらブレイクスルーとは言い難い。
ああいった基本的な正規表現をサポートするライブラリ
を作るのはアルゴリズムの教科書でも見ながらやれば
簡単にできることです。本当に大変なのは、Perl や
Ruby の正規表現と同程度の機能をサポートして、
現実的な速度で動かすようにすること。wide char ベース
で Perl と同等の正規表現が使えるライブラリだったら、
自分も欲しいぞ。
0016名無しさん@#+*/%
NGNG全然流れを読んでいない。
なんでワイドなlexが出回ってないのか
理由を考えたことないだろ?
0017名無しさん@お腹いっぱい。
NGNG君の作ったものを公開してください。
0018名無しさん@#+*/%
NGNGあ、あれは恒例です。2ちゃん名物の煽りです。
001913
NGNG1日で作れると思ったけどね。
002013
NGNG1はあそこにあるものをブレイクスルーと言ったんじゃ
ないんじゃないか? 文脈上。
0021デフォルトの名無しさん
NGNGどうせならegrep系の正規表現ライブラリキボーン
0022名無しさん@#+*/%
NGNG機能の不足といっても、主なものは
グループ化演算子の追加ぐらいだけど、
内部形式の調整と仮想マシンのipの操作、
あとnullableの判定の三箇所だけど、
でっち上げてみる?
逆方向サーチは多分10行以内で終わります。
002313
NGNG今のマシンならわざわざ表つくらんでNFAでstd::mapでも使えば
できんじゃないかと思って途中まで作った覚えがあるけど、仕事が忙しくなって
途中でほっぽってしまった。実際作ったらスピードはどうなるんだろう。
いまだとむしろメモリの方が安いかな?
002413
NGNG結局、なにをでっちあげろっていってるの?
0025名無しさん@#+*/%
NGNGいや、格納方法の工夫じゃなくもっと美しいやりかた。
すでに公表してるんだけど、閾値を使ったアルゴリズム。
だからスピードでもサイズでも圧勝。
なんでかっていうとワイドだと重要状態数が半分。
002613
NGNGなんとなくわかった。
あと、誤解されてそうだけど、オレは君のソース読んでないよ。
さらに、基本的には「ちゃんとやったら1日じゃ無理だろ」派だよ。
「でっちあげる」ってのは、君のページに書いてあった仕様を
だいたい適当に満たして細かいこと考えないで作ったら、ってことだけど、
そんなんやる気ないし。
0027名無しさん@#+*/%
NGNGあれ一日で作れるんなら
21のキボンヌの解決は多分100行ぐらいで解決できるはずだヨ。
ただCで書くと物量的にでっかいし、ポインター地獄だと思う
から一日では無理。
002810
NGNGうん、考えたことないっす。
需要が少ないからかな?
wide char 対応で、DFA で素直に実現できる範囲の表現しか
使えないライブラリがあっても、それがどんなに速くても
あんまり需要がないと思うのですよ。lex 的な使い方が
そんなに重要だとは思えない。このへんが作者さんと私の
認識の違いなんだろうけど。
ともかく、現状で「ブレイクスルー」とか書いてるのは見てて
恥ずかしすぎるから、こうやってちょっかい出してるわけです。
>>22
アンカー系(^ $ \b \B \w \W など)もないね。これも、便利だけど
DFA だと実現が難しいものの1つです。
マルチバイトの正規表現マッチングは実現方法によっては特許に抵触
することもあるし、便利なものであれば wide char のライブラリの
需要はあると思いますよ。
0029名無しさん@#+*/%
NGNG^$これは一番上の処理だけ。
\b\B\w\Wはパーサ作る上では必要ないと思う。
DFAによるパターンマッチング処理は
画像認識や音声認識など今後重要な分野だと思うよ。
もちろん、正規表現がどうのこうのでなく
アルゴリズムの部分でだけど。
0030名無しさん@お腹いっぱい。
NGNGないの、コンパクトだし。いいと思いますよ、パチパチ
たまには他人をたたえましょうね>みなさん。
003112
NGNG003210
NGNG画像や音声の処理に DFA は使い物にならんすよ。
こういう分野は、DP マッチングを使うことが多いのかな。
0033デフォルトの名無しさん
NGNG有名でないものを自分でコンパイルして調べるのも面倒というか勇気がいります。
このライブラリを使った簡単なプログラムを公開しないと評価しづらいです。
このライブラリを使った簡易grepを作ってみてはどうでしょうか。
それとともlex系なので作れないんでしょうか。
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGそこら辺りの正規表現ライブラリと大して変わらなくなるに一票。
0036名無しさん@#+*/%
NGNGかなり安定してから出すから良しとして。
マターリいきます。
■ このスレッドは過去ログ倉庫に格納されています