アーカイブ

タグ: ‘強力’ の記事

正規表現による検索結果もハイライトするって言う実装について。 現時点で、BM法を用いた普通の検索を行うと、検索結果が色分けに反映されるにも関わらず、 正規表現で検索をした場合は、検索結果を色分けしないという仕様だ。 いろいろ(実はたくさん)理由はあるんだが、まず根本に立ち返って、 これってそもそも、TNotePadをソース公開しているせいで、 色分けなど内部動作に関わる部分をよそのコンポの改変で実装するという点が問題だった。 改変してな…続きを読む

関連本を読んで強く感じたんだけどさ、正規表現に正規の物なんてないね。 でも、こう書いたらこう動いて欲しいってのの標準みたいなのはあるな。 で、今使ってるTRegExprは、検索に関してはそういう標準は十分満たしてる感じ。 置換は¥1~¥9で$1~$9と同じ動作をするように変更すれば十分って感じ。 十分どころか、真魚のくせにっていうくらいたいそうなことが出来る。 今できない機能に今後対応するかどうかについては、 面倒くさいからやりたくない…続きを読む

落ちる話からは離れて、いったい今実装している正規表現の何が不満かという話。 あたしゃ正規表現自体普段使わないし詳しくないので、一口に正規表現と言っているが、 実際はどんな書き方が通るのかが、物によってもバージョンによっても違うらしい。 今使ってるTRegExprが、一般に正規表現と言われるものに比べて、 十分な実装がされているのかされていないのか、その判断すら難しいほど無知なんだが、 ウチにある正規表現について書かれた本を見ると、ここが…続きを読む

さて、8000文字テストで落ちないエディタを三つあげたわけだが、 その三つとも、80000文字テストを乗り切ることは出来なかった。 EmEditorの限界は74483文字で、それ以上だと「見つかりませんでした」が出るか、 条件は不明だが「Too Big」とかなんとかっていうダイアログが出るかする。 落ちるよりはヒットしない方が全然マシ。 萌ディタは、80000文字の貼り付けが出来なかくて「がっかり」ダイアログ。 仕方ないので8000文字…続きを読む

最初は、ヘルプに遅いと書いてあるから速くできるんじゃないかとか、 まだ対応してない物を自前で対応できないかとか、 そういうつもりで正規表現ライブラリの中身を検証していたはずだったが、 途中からはアプリが落ちるか落ちないかの話題に変ってしまったな。 で、一応解決したよ。現在は、8000どころか80000文字でも落ちないようになった。 もちろん、32bitを超える数字のケアはしてないので、そこであふれるだろうが。 32bit以上のケアしない…続きを読む

アプリが落ちる話なので、言いがかりだと言われないように、やり方を明確にしておく。 -(半角のマイナス)を8000文字入力する。コピペでも良い。 なぜ8000かというと、欠陥のあるライブラリでも数百ぐらいだとまだ耐えるからだ。 マイナスには特に意味はないが、改行が含まれると検索出来ない物もあるのでダメ。 で、8000文字入力したら先頭1文字目に入力位置をあわせ、 正規表現で(.|¥n)+を検索する。あえて全角で書いたがもちろん半角で。 す…続きを読む

難しい言葉で言うと再帰。 正規表現の検索では、普通の検索と違ってたくさんの枝分かれが起こる。 その分かれた枝からさらに別の枝分かれが起こる。 全部の枝を検証して最長一致を求めるっていう事をやらせるために、 TRegExprは再帰っていう方法を使っている。 マッチしているかどうかを判断すべきメソッドは、枝分かれ前の現在の枝しか評価せず、 枝分かれの分岐点からは、それぞれの枝について自分と同じ仕事をするメソッドに託す。 それれぞれの枝がさら…続きを読む

ショック。 やっぱり自分で使うライブラリは、ソースコード全部把握してから使わなきゃダメね。 正規表現では+や*とかを使って、ものすごく長い範囲にヒットさせる事が出来るわけだが、 TRegExpで、ものすごく長い文字列にヒットさせようとすると、 オーバーフローが起こって何の警告も出さずにアプリが落ちる事がわかった。 たぶんさ、足し算とか引き算とかで桁があふれた場合は警告出るんだろうね。 今回のオーバーフローは、正規表現ライブラリ内のとある…続きを読む

出来れば自分で書きたくないので、利用できる物を探してみるのだが、 Delphiであると言うことがどうしても足かせになる。 .NETの正規表現が逆方向も検索できて大変よろしいのだがな。 ともかく、Delphiってのはユニコードがない時代に作られたものなので、 Delphi向けの正規表現といえばSJISしか検索できないとか日本語ダメとかで、 逆にユニコードの検索が出来るとDelphiから利用できなかったりで、 Delphiかつユニコードな正…続きを読む

ずっと仕様だからしょうがないとか思ってあきらめてた部分は多々あるわけだが、 その仕様だからってのは、仕様じゃなくすることは出来るけど面倒すぎるって事ばかり。 で、たまたまやる気が持続したので、仕様を打破する更新とか続いたわけだ。 もうさ、不満があったら面倒でも修正しちゃうって流れに完全にシフトしちゃったんだけど、 知識不足でどうしても手が出せないのが正規表現部分。 真魚は作者と嫁が使うために作られた物であり、 作者も嫁もよくわかっていな…続きを読む

適当な4文字アルファベット.comは相当空いているが、 aabbとか、abab、abbaといった、二種類を二回ずつ入れたドメインは全滅していた。 良く空いているのはqやxを含むもの、母音が3回入っているものだ。 だが、結局意味のない四文字はどれも魅力がない。 無意味な四文字ドメインに総当たりするのも効率が悪い。 日本語で発音できるものに限定して、siとshiがあるような微妙なのも除外し、 ローマ字五十音を三音まで並べた4文字ドメインを全…続きを読む