- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:36:04 ]
- 正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。 【 前スレ 】 正規表現 Part5 pc12.2ch.net/test/read.cgi/tech/1212498448/
- 181 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:46:04 ]
- >>179
とりあえずかの有名なこれでいいんじゃねーの? ttp://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1026-0&YEAR=2003 ttp://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1027-7&YEAR=2003
- 182 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:52:14 ]
- >>181
あり^^
- 183 名前:亀 [2009/07/29(水) 13:06:01 ]
- 聞くのもどうかと思ったんですが調べても解決しなかったので、聞きたいのですが
『正規表現の定義』ってなんですか?
- 184 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:11:58 ]
- ほんとに調べたのか?
- 185 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:18:50 ]
- 文字列一致確認用プログラミング言語
- 186 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:19:32 ]
- >>183
アルファベットΣ上の正規表現とは、 - 空集合 0 - Σ の要素 c - r, s が正規表現のとき r + s - r, s が正規表現のとき rs - r が正規表現のとき r* のいずれか。
- 187 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:23:42 ]
- >>186
宿題は自分でやらせろよ。
- 188 名前:末吉 [2009/07/29(水) 14:16:10 ]
- >>186
183は定義を聞いてるんだろ??
- 189 名前:デフォルトの名無しさん [2009/07/29(水) 15:17:02 ]
- 定義じゃん
- 190 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 15:56:14 ]
- >>188
ここの「形式言語理論における正規表現」を見ろ ttp://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
- 191 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:05:59 ]
- 見るなら正規言語だろう。
ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A8%80%E8%AA%9E
- 192 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:46:52 ]
- 正規言語と正規表現は本質的には同じだけど違うものだし
- 193 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:11:51 ]
- >>181は激しく良書なので啓蒙しとく
大学のオートマトンのテキストがひどかったので この本は難しいだろうと思ってずっと敬遠してたが これはとてもわかりやすかった 予備知識もほとんどいらない (最初のほうは背理法だとか数学的帰納法のレベルから解説) 厳密な定義がちゃんと書いてあるが それに先だって具体例をあげて説明がある ただ、この本を読んでも>>169の実装に直接には役立たないかもしれない (0+1)*1(0+1)+(0+1)*1(0+1)(0+1)のような正規表現を簡約して より計算しやすい正規表現に変換する といった最適化なら正規表現の代数的性質の章でちょろっと学べる
- 194 名前:169 mailto:sage [2009/07/29(水) 19:37:54 ]
- 直接役には立たなくても正規表ゲニストを目指す僕は
正規表ゲニスト名乗っててオートマトンも知らんのかと 馬鹿にされるのは嫌なので オートマトニストにもなります><
- 195 名前:デフォルトの名無しさん [2009/07/29(水) 19:59:04 ]
- もういいから消えろよ
- 196 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 23:55:35 ]
- aaa/bbb/ccc
aaa/bbb/ddd aaa/ccc/eee ・ ・ ・ 上のような文字列があって正規表現での検索時間(grepとか)を速くしたいと思っていますが、 高速化するために正規表現の合成?みたいなことができるようなライブラリってありますでしょうか? 検索したい文字列のリストはだいたい1行が30〜40文字程度で100行〜200行ほど 検索対象はファイルサイズで400Mbyte〜6Gbyteぐらいです。
- 197 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:09:32 ]
- 質問をもっと推敲しろ
- 198 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:10:30 ]
- 必要ない行はgrepで飛ばして読めばおk
- 199 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:13:49 ]
- grepパイプでつなげば十分なんじゃね?
- 200 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:46:05 ]
- パイプって言いたかっただけやんwww
- 201 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 03:14:06 ]
- >>199
せめて -e を並べるか -f だろー。
- 202 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 09:14:17 ]
- fgrep使うのが正解
- 203 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 12:45:55 ]
- いつから言葉遊びをするスレになったのですか?
- 204 名前:デフォルトの名無しさん [2009/07/30(木) 14:47:20 ]
- 正規表現は秀丸でちょこっと\n\n\nとか^[a-z]くらいをいじっただけの初心者なのに、
Javaで、JavaのDecimalFormat用文字列を Excelの数値フォーマット定義文字列に変換するフィルターを作ってます。 『他の人にやらせりゃいいのに…まあ調べればわかるやろ…』と思って始めましたが、 案の定、いきなり引っかかりました。www 1)引用符'を引用符"に変換する正規表現(ただし連続''は'自体を表すので"にしない) 2)''に囲まれていない浮動小数点EをE+に ([0#])(E)([0#])を\1E+\3に なお、変換は単一の正規表現で行う必要はなく、 順序依存のある複数の置換をかけてもOKです。 ただしできれば、各フィルターは常に全文に適用したいと思います。 (不要なフィルターも通過させる) 最悪、一部の変換結果を絶対にユーザが使わない予約語に変換して避けておく… ということも可能だと思いますが… 正直、いきなり1)で引っかかったのにはガックリきました。 フィルター文字列定義をpropertiesで外出しにして 出荷後もサポートで変更・追加できるようにしないとマズイな…
- 205 名前:204 mailto:sage [2009/07/30(木) 14:56:08 ]
- 作成中ソースの一部ですが、何をやりたいかは見当つくと思います。
これが論理的にダメダメと言うことはわかってます。 ////////////////////////////////// //シングルクォート囲みをダブルクォート囲みに //'"'→\" //まず引用符の中の"自体をエスケープする。\" filter = new RegFilter("'\"'","\\\""); filterlist.add(filter); //シングルクォート囲みをダブルクォート囲みにする前に、 //連続''は'1個をあらわすので、"'"に変換してやる。 filter = new RegFilter("''","'"); filterlist.add(filter); //シングルクォートをダブルクォートに変換してやる。 //ただしさっきのを除く必要がある。 filter = new RegFilter("[^']'","\""); filterlist.add(filter); //全フィルターを通す変換実行 sResult = executeFilters(sFormat, filterlist);
- 206 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 15:49:13 ]
- うん、わかるね
- 207 名前:204 mailto:sage [2009/07/30(木) 15:56:54 ]
- msdn.microsoft.com/ja-jp/library/2k3te2cs.aspxにいいのがありますた。
1)は (')([^']+)(')→\"\2\" ''→' の2つでいけるかなぁ…
- 208 名前:204 mailto:sage [2009/07/30(木) 16:24:35 ]
- 2)の浮動小数点EをE+にするのは、
引用符の中のEだけをEEに退避 ([^']+)(')([^']+)(E)([^']+)(')([^']+)→\1\2\3EE\5\6\7 浮動小数点のEをE+に (*.)([#0])(E)([#0])(*.)→\1\2E\+\4\5 退避したEEをEに戻す (*.)(EE)(*.)→\1E\3 の3つで97%くらいは出来てるかなあ。 変換対象の最後が引用符のときに落としちゃうけど、まあ…
- 209 名前:204 mailto:sage [2009/07/30(木) 16:27:22 ]
- *と.が逆だった。
引用符の中のEだけをEEに退避 ([^']+)(')([^']+)(E)([^']+)(')([^']+)→\1\2\3EE\5\6\7 浮動小数点のEをE+に (.*)([#0])(E)([#0])(.*)→\1\2E\+\4\5 退避したEEをEに戻す (.*)(EE)(.*)→\1E\3
- 210 名前:204 mailto:sage [2009/07/30(木) 16:40:36 ]
- 最初から地にEEがあるとEになっちゃうか。
横着せずに引用符の中のEEだけをもどさないとだめだな。
- 211 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:06:52 ]
- ダブルクォートの中にカンマを含むフィールドのことを考えると
正規表現よりは文脈自由言語でパースしたほうが絶対にいい
- 212 名前:204 mailto:sage [2009/07/31(金) 10:43:27 ]
- かも知れないけど、開発の立ち上げ工数と、今後のメンテを考えるとなー。
(あまり入出力仕様は変わらないと思うが、日付フォーマット変換の追加がありうる) 正規表現ならそれなりに触れるエンジニアはいくらでもいるわけで。 また、必ずしも完璧に作る必要はなくて、 ユーザが業務で使うごく一般的なフォーマット文字列を通せれば後は制限事項でもいいし。 それをいえば、想定顧客に、浮動小数点使ってる人なんていないんじゃないかと思うけどね。。。
- 213 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 11:31:23 ]
- >>212
> 正規表現ならそれなりに触れるエンジニアはいくらでもいるわけで。 いねーだろ。どの口が言ってんだ?あん?
- 214 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 11:58:34 ]
- ていうかここって日記スレなのか?
- 215 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:16:24 ]
- 正規表現はフィットする目的には早く書けるけど、保守性は悪いし実行
速度は遅いしで、まともなプロジェクトには使わないよ。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:21:08 ]
- まともでないプログラマ乙
- 217 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:24:55 ]
- >>216
>>204 に回答してから言えよ。
- 218 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:27:31 ]
- 言うほど保守性が悪いとも思わないし、実行速度も
用途に十分なら別にかまわんしなぁ。 むしろ正規表現使わずにだらだら書かれたほうが 見通しが悪くて遅い場合も多い。適材適所。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:28:28 ]
- >>218
>>204 に回答してから言えよ。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:33:32 ]
- >>219
問題がよくわかんないし、javaとexcelだしスルー。
- 221 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:37:46 ]
- そもそも便所の落書きに仕事を持ち込まれても知らんし。
- 222 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 13:14:57 ]
- >>212
正規表現で書かれたフィルタのバグ取りなんてぞっとする ちゃんとした技術者なら、RFCにCSVのBNFがそのまま載ってるんだから BNFの通りにコーディングすりゃ テスト含めて1日で終わるよ
- 223 名前:204 mailto:sage [2009/07/31(金) 13:15:56 ]
- >>213
おっと確かに! 居ないからこそ、漏れがやる羽目になっとるわけだがwww (出来る人に空きが無いという理由もある) しかしま、コトは相対比較で十分なんで。 >>221 まあねえ。ML探して加入して自己紹介して 過去ログ検索して質問投げるってのが本来なんだろうが。 でもwww.rubular.com/とかでちょこちょこやるうちに 何とかなりそうな気がしてきた。
- 224 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 13:26:42 ]
- >>207
'''hoge' みたいなパターンがダメなのでは。 >>205 がよくわからんのだが、正規表現の変換処理のリスト (filterlist) を積んで、 executeFilters() でそれらを順番に逐次処理して適用する、ということ? そんなん絶対うまくいかんと思うが。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 13:43:19 ]
- 絶対入力するなよ!絶対だぞ!絶対入れるなよ!
で切り抜けるんだろう
- 226 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 13:56:39 ]
- >>211
だよねー。 Java は良く知らないんだが、 JavaCC とか使えばスッキリ書けないのかね?
- 227 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 14:17:27 ]
- CSV扱うライブラリぐらいjavaにもありそうなもんだけどな。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:40:25 ]
- Javaでも20行未満で書けるレベルの処理だろうに。
- 229 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:50:34 ]
- >>228
お前がそれをさっさと書かないからこのネタが延々と終わらんだろうが。
- 230 名前:デフォルトの名無しさん [2009/07/31(金) 16:56:53 ]
- ライブラリあるの?
- 231 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:57:34 ]
- SuperCSVオススメ
- 232 名前:デフォルトの名無しさん [2009/07/31(金) 18:02:03 ]
- >>228
期待age
- 233 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 04:17:10 ]
- それをここでやるのはスレ違い。
- 234 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 08:51:21 ]
- 逃げる気か?
- 235 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 10:11:53 ]
- >>234
あんた馬鹿?
- 236 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 12:43:12 ]
- 逃げやがったな。口だけ達者で、ほんとは何も出来ないヤツw
- 237 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 12:45:19 ]
- >>236
あんた馬鹿?
- 238 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:24:30 ]
- 負け犬めガッ!一生逃げ回ってろ
- 239 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:29:08 ]
- なにこの粘着質
- 240 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:30:20 ]
- 質問者でしょ。それ以外に利益のある人はいない
- 241 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:33:21 ]
- 人生の敗北者!
- 242 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:44:54 ]
- 質問者はもっと回答者に敬意を持って接しろ
- 243 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 14:01:48 ]
- 愉快犯の荒らしだろ。放置推奨
- 244 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 23:44:50 ]
- 228 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/31(金) 16:40:25
Javaでも20行未満で書けるレベルの処理だろうに。 ↑ できもしないことを、いい加減に書くのは、質問者に対して失礼。 第三者も見ていて不愉快。 おまいこそ最悪の荒らし!
- 245 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 00:07:19 ]
- そんなに粘着する必要あるのかと。
>>228が無知で、何も知らずに発言しちゃっただけかも知れないんだぜ? くだらないプライドを守っている暇があったら、勉強して技術向上して 人生をエンジョイした方が、オタク(というかハッカー精神)的に 意味のあるものになるんじゃないのかね?
- 246 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 00:26:43 ]
- なにしにきたんだよ もう帰れよ
- 247 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 06:43:38 ]
- Javacに一行の文字数制限があったかどうかが
気になってしようがないわけだが。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 11:29:02 ]
- 無知で、何も知らないならレスしないでください。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 11:42:35 ]
- そもそも 204って質問だったのか?
アドバイスが欲しいらしいのはわかるが、お願いします的なセリフは何も書いてないだろ ウゼー独り言延々書き込んでるやつがいるなぁ位の認識だったんだが。
- 250 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:12:46 ]
- 珍しく伸びていると思えばこれか
- 251 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:38:58 ]
- 喧嘩嫌
- 252 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:54:39 ]
- >お願いします的なセリフは何も書いてないだろ
www 苦しい言い訳。 「お願いします」口調なら、「Javaでも20行未満で書けるレベルの処理」になるのかい?
- 253 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:59:48 ]
- まあ書いてやってもいいかな、くらいだけどな
- 254 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:12:00 ]
- >>253
中学生2年生かおまいは
- 255 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 05:00:11 ]
- 中学生はジャポニカ学習帳でも焼いて食ってろ
- 256 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 07:08:27 ]
- 中学二年生にだって天才はいるかもだろ
ニヤニヤと見守るのがベター
- 257 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:34:29 ]
- おっと〜!自称「天才」中学2年生現る!
・・・で?20行で書けないの?天才さんw
- 258 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:35:10 ]
- 今なら30行に負けてあげてもいいんだけど
- 259 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:18:18 ]
- マジキチ
- 260 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:21:17 ]
- 土日は遊んでたので見てなかったがまだやってんのか。ヒマだね〜
- 261 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:25:05 ]
- どうした?30行でも不足か?
そっちが20行と言ったから20行なわけで。 べつに、40行でも50行でも構わんのだがな。
- 262 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:27:15 ]
- マジキチ
- 263 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:37:57 ]
- >Javaでも20行未満で書けるレベルの処理だろうに。
こいつ、恥ずかしくなって逃げたのか。布団かぶって泣いてるのか?
- 264 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:43:09 ]
- マジキチ
- 265 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:36:06 ]
- なんだこの流れ
Javaよくわからんから20行が無茶ぶりなのかどうか知らんけど 一体何が夏厨の琴線に触れちゃったの? 質問者不在で誰も求めてないコード請求してもしょーがなくね?
- 266 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:43:39 ]
- 生理の日かアレな人かどちらか
- 267 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:49:27 ]
- javaで20行書くのに、いったい何日かかってんだよ。
速いとこコードを晒せ。それですべて解決する話だろ?
- 268 名前:デフォルトの名無しさん [2009/08/03(月) 23:55:01 ]
- マジキチ
- 269 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 07:15:52 ]
- おはよう!10行くらい書けた?まだかな?
- 270 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 07:38:06 ]
- 酔っぱらいに絡まれた感じってこんなんだよな
- 271 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:03:12 ]
- schemeでCSVパーサを書いた
BNF通りのCSVの定義が19行、呼び出し8行、コンビネータパーサ80行 しかしよ、実はCSVのパースなんか全く関係なくて 問題はDecimalFormatのパースじゃねーか ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/text/DecimalFormat.html ここにBNFライクな仕様が載ってるから これをパース後数値にして、コンマ/改行で区切って出力すりゃいい 楽をするならJParsec
- 272 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:29:37 ]
- Javaなら20行で書ける!
- 273 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:08:46 ]
- そもそも大抵の言語は1行にいくらでもつめられるからできて当たり前ww
pythonだと難しいかもな。
- 274 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:17:44 ]
- ↑
世間を知らない井の中の蛙
- 275 名前:204 mailto:sage [2009/08/04(火) 09:41:26 ]
- 土日は自宅プロバイダの書込制限ですまそ。現状はこんな感じ。網羅的テストはまだ。
エスケープ処理が多重にかかるのでちとわかりにくいかも。 引用符の外側を一撃で取れないので、 内側の退避と復旧手順が入って無駄に複雑になってます。 引用符のパースはjavaでかけるべきだったかな… /** * 正規表現パターン文字列と、置換文字列で1セット。上から順に解釈適用する。 */ public static final String[][] FORMAT_FILTER_ARRAY = { ////////////////////// //浮動小数点対応 //引用符の中のEだけをEEに退避 {"([^']+)(')([^']+)(E)([^']+)(')([^']+)", "$1$2$3EE$5$6$7"}, //浮動小数点のEをE+に {"(.*)([#0])(E)([#0])(.*)", "$1$2E\\+$4$5"}, //退避したEEをEに戻す {"([^']+)(')([^']+)(EE)([^']+)(')([^']+)", "$1$2$3E$5$6$7"}, ////////////////////// // シングルクォート囲みをダブルクォート囲みに {"(')([^']+)(')", "\"$2\""}, {"''", "'"}, ////////////////////////////// //多重エスケープ対応 // //多重にエスケープ処理が走るため。\1個でも\を出せるように倍にしておく。 {"\\\\", "\\\\\\\\"} };
- 276 名前:204 mailto:sage [2009/08/04(火) 09:43:17 ]
- あと、変換対象データが整数の場合だけの処理も入れざるを得なくなった。
小数点を最後に残すExcelの仕様のせい。 /** * 整数値の後ろの余分な小数点を削除する。 * ここでは引用符は"に、浮動小数点はE+に変換後なので注意。 */ public static final String[][] DOT_FILTER_ARRAY = { ////////////////////// //整数の場合の余分な小数点対応(浮動小数点で無い場合) //引用符の中の.#を..#に退避 //{"([^\"]+)(\")([^\"]+)(\\.#+)([^\"]+)(\")([^\"]+)", {"([^\"]*)(\")([^\"]*)(\\.#+)([^\"]*)(\")([^\"]*)", "$1$2$3\\.$4$5$6$7"}, //浮動小数点の#.#E#を#..#E#に退避 上の変換とは重ならない。 {"(.*)([0#])(\\.#+E\\+[0#])(.*)", "$1$2\\.$3$4"}, //上記変換対象にならなかった-つまり..#でない.#+を削除 {"(.*)([^\\.])(\\.#+)(.*)", "$1$2$4"}, //浮動小数点の#..#E#を#.#E#に復旧。引用符の中の外し方がわからない。 {"(.*)([0#])(\\.)(\\.#+E\\+[0#])(.*)", "$1$2$4$5"}, //引用符の中の..#を.#に復旧 //引用符の中にもともと..#があっても、...#になって..#に戻るはず。 {"([^\"]*)(\")([^\"]*)(\\.)(\\.#+)([^\"]*)(\")([^\"]*)", "$1$2$3$5$6$7$8"} };
- 277 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:49:56 ]
- これ見たら >>218 とかブン殴りたくなってきたんだが。
- 278 名前:204 mailto:sage [2009/08/04(火) 09:51:49 ]
- 20行の成否はどうでもいいんだけど、もし可能であれば教示していただけるとうれしい。
仕事はともかく、美しいコードには感動があるのでね。 (とはいえ、他人が見てわからないコードはよろしくないので、 無理に圧縮した20行より、読みやすい100行の方がいいけど。) >>224 n回フィルターすると、フィルター相互の矛盾衝突のチェックがn(n-1)必要になるから、 フィルターが増えるほど加速的に困難になる…という趣旨ですよね。 しかし、3行1セットで1個の処理をするフィルターを作成し、 そのセットが他には絶対に影響を与えない堅固なものであれば、 必ずしもn(n-1)にはならないのではないか…と思って手をつけたわけですが… しかし実際やってみるとそうはなってませんな…引用符処理が誤算でした。
- 279 名前:デフォルトの名無しさん [2009/08/04(火) 09:56:00 ]
- おい、ここはニートのスレですか?
- 280 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:59:41 ]
- なんだなんだ、また日記が始まるのか
- 281 名前:204 mailto:sage [2009/08/04(火) 10:05:11 ]
- いやいや、みなさんオチがついてないと気持ち悪いでしょ。サービスのつもりだったんだけど。
もう一区切りついたんで書き込みやめとくよ。(何が出来て何が出来ないかはわかったという趣旨) あと>>224さんの'''hoge' 難問ですわ…ご指摘ありがとうございました。
|

|