1 名前:正規表現 mailto:正規表現 [02/12/06 18:09.net] 正規表現
2 名前:終了 mailto:終了 [02/12/06 18:27.net] 終了
3 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/06 18:47.net] /\s*終\s*了\s*/
4 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/06 18:51.net] oreillyの本読めば全てに限りなく近く分る。よって終了。
5 名前:名無しさん@お腹いっぱい。 [02/12/06 18:52.net] 板地害
6 名前:名無しだよもん@カラアゲうまうま mailto:sage [02/12/06 19:00.net] www.oreilly.co.jp/BOOK/regex/
7 名前:名無しさん@お腹いっぱい。 mailto:netasage [02/12/06 19:05.net] 釣り合いの取れた括弧にマッチする正規表現を教えてください。 () ((())) ((((())))) (()()) ((())(()()))
8 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/06 19:12.net] 正規表現ってFAだけで実装してるの?PDAも使うの?
9 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/07 11:36.net] >>7 無い。
10 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/07 20:44.net] (・)(・) . .) ( ( Y )
11 名前:性器表現 mailto:sage [02/12/07 22:28.net] 性器表現
12 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/12 22:24.net] 限界までgrepやればいい気持ち
13 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/12 22:41.net] 正則表現って訳してる本無かったっけ?
14 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/13 09:51.net] 詳説正規表現に正則表現という言葉が出てきた気がする
15 名前:はにゃーん☆ ◆ZoWSAKURAw mailto:moe or die [02/12/15 16:08.net] >>7 Perl 5.6 以降なら、可能。 #! /usr/local/bin/perl @kakko = qw[() ()) ((())) (()())) ((((())))) (()()) ((())(()()))]; $regex = qr/[^()]*\((??{$regex})*\)[^()]*/; foreach (@kakko) { if(/^$regex$/) { print "Match: $_\n"; } else { print "Unmatch: $_\n"; } }
16 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/16 08:16.net] でも、それ正規表現じゃないんじゃないの? 文脈自由文法のクラスでしょ?
17 名前:名無しさん@お腹いっぱい。 mailto:age [02/12/16 12:28.net] それ言ったら、今の「正規表現」なんてそもそもの定義から外れちゃうような気がするぞ。
18 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/16 20:24.net] 数学的文脈におけるいわゆる「正則な表現」だけで括弧の釣り合いにマッチさせるスレはここですか?
19 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/16 20:43.net] ここは既に終了したスレです。
20 名前:名無しさん@お腹いっぱい。 mailto:age [02/12/17 03:36.net] いやん、正規表現がんばろー。 16>> 拡張正規表現で納得しろ。
21 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/17 04:44.net] そもそも正規言語は数をかぞえられないんだから、 拡張正規表現でもないでしょ。
22 名前:名無しさん@お腹いっぱい。 mailto:age [02/12/17 19:24.net] 拡張正規表現 = 「正規表現」の定義を拡張。;)
23 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/17 20:22.net] >>20 言った方がいいかどうかわからんが 16>> 逆だ
24 名前:名無しさん@お腹いっぱい。 [02/12/21 23:29.net] /^(U).\/*&_$&&*_@&(&*@+|@_(@)(?!<>)_##[o-Q](.*O+)&^&%^#)#+#$/
25 名前:おむこさん志望 ◆QtGqCwfDSA mailto:sage [02/12/22 00:23.net] いま glibc のマルチバイト回りをやってる人が書いたドキュメント lc.linux.or.jp/lc2001/papers/dfa-i18n-paper.pdf lc.linux.or.jp/lc2002/papers/hasegawa0918h.pdf >>13 オートマトンで有名な本 www.saiensu.co.jp/books-htm/ISBN4-7819-0374-6.htm には正則表現って書いてあった。
26 名前:名無しさん@お腹いっぱい。 [03/01/06 02:59.net] ttp://sorekika.com/dame.jsp?idx=352
27 名前:名無しさん@お腹いっぱい。 [03/01/06 22:41.net] question = ( to ) ? be : ! be; -- Wm. Shakespeare
28 名前:性器表現 mailto:sage [03/01/11 12:17.net] 凸
29 名前:山崎渉 mailto:(^^)sage [03/01/15 13:00.net] (^^)
30 名前:名無しさん@お腹いっぱい。 [03/02/16 02:34.net] 質問よいでしょうか・・・ 英辞郎の読み仮名を削除したいのですが、 {(←全角です)ではじまり}(←これも全角です)でおわる文字列を ごっそり置換したいのですが、どう表現すればいいのかよく わかりません・・・・ おしえてくださいおながいします
31 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/16 02:48.net] >>30 処理系は何?
32 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/16 03:05.net] >>30 sed "s/{.*}//" < input > output では駄目かい?
33 名前:名無しさん@お腹いっぱい。 [03/02/16 06:36.net] >>32 その解は1行に複数の対が出てきたときに破綻する
34 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/16 12:28.net] >>31 入れ子になっていない、かつsedが日本語に対応しているならば s/{[^}]*}// というパターンを使うのが楽。
35 名前:30 [03/02/16 13:50.net] >>31 Windowsなんですよね・・・xyzzyの置換使おうかと思ってたんですが あ、Pythonも使い方よくわからないけど(汗汗)入ってます # Pythonだとどうかくんですかね?? ダメだったらCygwinでも入れてやってみようと思います。 皆様有難う御座います。
36 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/16 14:03.net] 秀丸の置換使えば?
37 名前:名無しさん@お腹いっぱい。 [03/02/16 14:26.net] perlぐらいうごかん?
38 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
39 名前:30 mailto:sage [03/02/16 15:35.net] >>34 さんの方法で問題なく出来ました。 有難う御座いました。とりあえず、この表現の 意味をきちんと理解しとこうと思います。メモメモ・・・ ところで、>>36 さん、何故秀丸?
40 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
41 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/17 07:44.net] BNF使え
42 名前:エディタ何617 mailto:sage [03/02/21 16:46.net] pc2.2ch.net/test/read.cgi/software/1040201710/641-643 より移行してきますた。 正規表現の話はこっちでしましょ。 俺には大した知識はないんだが。 >642 :名無しさん@お腹いっぱい。 mailto:[sage] :03/02/21 15:28 ID:esOQbptZ >なんのために [:alpha:] のような書式があるのかと子一時間 これは知らんかった。 テキストエディタの粋を脱しそうだが。
43 名前:エディタ何617 mailto:sage [03/02/21 16:47.net] >643 :名無しさん@お腹いっぱい。 mailto:[sage] :03/02/21 15:31 ID:+tcoIlhs >>>641 >文字クラスが文字コードに依存するって言うのは恥ずかしいことでしかないと思うんだが。 >どんなコードでも入力が同一なら出力も同一であるべきじゃないの? 後半はよくわからんが、文字クラスが文字コードに依存するのは当然のことだと思うぞ。 文字 a は a というアルファベットという意味があるわけではなく単なるコード(0x61)なわけ。 テキストエディタでは普段から文字コードなんて考える必要はないんだけど、 正規表現では [a-z] とすると Shift-JISなら [\x61-\x7A] EBCDICなら [\x81-\xA9] というふうに変わってくる。 当然文字コードに依存する。 ここで文字コードに依存せずに認識するとなると、EBCDICの場合 [a-z]=[\x81-\x89\x91-\x99\xA2-\xA9] になってしまって本来の [\x81-\xA9] にはならなくなってしまう。 そのために 642 のような [:alpha:] なんかが用意されている。 さもなければ文字コード共通正規表現用文字テーブルなんてものが必要になりかねない。 テキストエディタで扱う文字コードとして EBCDIC を例に出すのは適当ではないが。 エディタがしているのは文字コードを認識して表示するということで、 文字コードを変換しているわけではない。 もちろん明示的に変換(文字コードを変更して保存等)すれば変わる。
44 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/21 17:54.net] >文字クラスが文字コードに依存するって言うのは恥ずかしいことでしかないと思うんだが。 そりゃ確かに恥ずかしい。 でも [a-z] という表記が「小文字アルファベットの文字クラスを指定している」ものだと誤解して、 誤用しているほうがもっと恥ずかしい。 「-」を使った表記は文字コード上で連続した複数の文字を意味しているだけだから、 本当に文字クラスを指定しなければならないシーンでは [:lower:] や \l を使うべき。 代表的なエンコーディングでは偶然文字コードが連続しているから [a-z] で期待した動作になるので常用されているの。
45 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/21 20:46.net] [:alpha:] とかってウムラウトがどうたらとかいう話のためにあるのだと思ってた
46 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/21 21:22.net] unicode などが本格的に使われ出して 多国語があたり前になったら [:Japanese:] とか [:Korean:] とか できるのかな。
47 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/21 21:36.net] >>45 その通り。 POSIX ではロケールによって変わるよ。
48 名前:テキ何618 mailto:sage [03/02/21 23:22.net] 興味があるので誘導されてきました。 ってココは関連Linkないので張るね。 ●正規表現最新リンク集2003 ttp://www2.famille.ne.jp/~akio1998/l_grep.html ●正規表現メモ ttp://www.kt.rim.or.jp/~kbk/regex/regex.html で向こうのスレでの疑問で思ってたんですが、 | また正規表現の正しい、正しくないってあるのか? 上の引用についてずばり解決してくれる神はおられませんか? 向こうでも思ってたんだけど中途半端な正規化だから文字コードに 依存するって思ってたんですが。
49 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 00:55.net] >>44 >本当に文字クラスを指定しなければならないシーンでは > [:lower:] や \l を使うべき。 つーことは[B-Yb-y]は本当に文字クラスを指定せんといかんシーンでは [BCDEFGHIJKLMNOPQRSTUVWXYbcdefghijklmnopqrstuvwxyz] あるいは [^AZaz[:digit:](憶えとらんので略)] と書かねばならんわけか…
50 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 01:19.net] [:alpha:] とかって、実際に実装されてるのあるの?
51 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 01:21.net] >>48 ある正規表現が書かれた目的を果たせるかどうかで、正しい正しくないを言うことはで きるでしょう。ただし目的を果たすといっても厳密でなければならない場合やアバウト で大丈夫な場合と様々なレベルがあるわけで、ケースに応じて使い分けるのが大人とい うものです。 それから正規化しているから正規表現というわけじゃないです。ある有限オートマトン が受理する特定の言語(記号列)を正規言語と呼び、その受理される言語の全ての集合を 正規集合と呼び、その集合を表現する方法を正規表現と呼んでいるのです。文字コード 云々が問題になるのは、SJISやEUCのようなマルチバイトコードで表現された1文字を1 つの記号として認識しない正規表現エンジンがあるからで、またエンジンが認識する場 合でも利用者側が記号としての文字と文字コードとの関係を、[a-zA-Z] と [:alpha:] のようにゴッチャにしているからです。もっとも後者についてはマルチバイトには依存 しない話ですけれど。 >>49 厳密にはそういうことになります。メンドイのでそこまでする人は少ないでしょうが。
52 名前:エディタ何617 mailto: sage [03/02/22 01:40.net] | また正規表現の正しい、正しくないってあるのか? 俺なんかの知識じゃたいしたこと言えないが、現在においては統一的な正しさなんて無いと思う。 ものによって実装が違うから、egrepでは正しくedでは正しくないとかあろうね。 使い手が自分で何をしようとしているのか理解できているかどうかが問題になりそう。 Q「s/[A-z]//g としたら[や^まで消えてしまいました。この正規表現は間違っていますか?」 A「正規表現もパターンマッチの結果も正しいです。ただ、あなたの求めている正規表現ではないでしょう。」 >向こうでも思ってたんだけど中途半端な正規化だから文字コードに >依存するって思ってたんですが。 エディタは文字コードを勝手に認識してくれるからユーザーが考える必要はないけど、 文字クラスで[a-z]とかやる場合はどうしたって文字というより文字コードを扱うってことになる。 ただ、普通は上に書いたように[A-z]なんてやる奴はいないだろうから、 実質的には文字コードに依存していないかのように扱えるというだけだと思う。 ところで [a-z] として、これがどういう意味であって欲しいんでしょうか?
53 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 03:42.net] [a-z] "a"の文字コードから"z"の文字コードまでの文字コードの文字のことかな
54 名前:テキ何618 mailto:sage [03/02/22 12:14.net] >51,52 すまん質問の仕方が悪かった。 上で正規表現の仕様が悪いみたいな雰囲気があったから疑問に おもったんですが、たとえば「grepの仕様は正しいが、awkの仕様は 間違ってる」みたいな正規表現の仕様上の問題で間違いというのが あるのかという疑問でした。 >[a-z] その正規表現で規定されているaのキャラクタからzのキャラクタまで。 文字コードでも文字でもないはずだ。 たとえばProxomitronなら[a-zA-Z]と同じようになるようにキャラクタの 並びが規定されている。
55 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 12:19.net] 正規表現が実装されているなら 実装の細部がgrepとawkでは異なるというだけで 正しいも正しくないもないんだってば。
56 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 14:34.net] 全然議論が噛み合ってないなぁ。 「正規表現」(オライリー)の一冊くらい読んでから出直してきて欲しいな。 でなきゃこんなの不毛だよ。
57 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 14:50.net] >>51 > それから正規化しているから正規表現というわけじゃないです。ある有限オートマトン > が受理する特定の言語(記号列)を正規言語と呼び、その受理される言語の全ての集合を > 正規集合と呼び、その集合を表現する方法を正規表現と呼んでいるのです。文字コード これが理解できません。
58 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 15:56.net] >>[a-z] >その正規表現で規定されているaのキャラクタからzのキャラクタまで。 >文字コードでも文字でもないはずだ。 「aのキャラクタからzのキャラクタまで」ってのが文字コードそのものだと思うぞ。 「文字コードでも文字でもない」ってのが [:alpha:] なんじゃないの。 [a-z] だけ特殊な意味合いを持って欲しい、なんてことではないでしょう。 >たとえばProxomitronなら[a-zA-Z]と同じようになるようにキャラクタの >並びが規定されている。 絶対そんな規定されてないよ。 Proxomitronで規定されているのは「大文字小文字を同一視する」ってこと。 だから [a-Z] なんて書いても [a-z] と同等の文字コードの並びとして扱われる。 これは単にProxomitronの性質上、扱う文字列の大文字小文字を区別するより 区別しない方が圧倒的に多いということから独自に規定されたものだろ。 「文字でも文字コードでもない」として扱うためには、エディタ作者なりが 新たな文字の統一コードを規定していろんな文字コードに対応した変換表でも作り、 ユーザーは既存の文字コードの代わりに作者の規定したコードを理解して使うってことになるんじゃないか?
59 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 17:34.net] 形式言語の教科書くらい読んでから来い
60 名前:テキ何618 mailto:sage [03/02/22 23:55.net] >55 ですよね、最近そういった話を耳にするんで敏感になってました。 きっぱり否定してくださって助かります。 51氏も分かりやすい説明ありがとうございます。 >58 それが正規表現関係の資料をいくら読んでも必ず「aのキャラクタから zのキャラクタまで」だったと記憶してます。 逆にコードで表記されてる資料がありましたら、ご提示願えませんか? # 日本語の資料だとよく文字コードの話もみます。 >「大文字小文字を同一視する」 の実装はどうされているのでしょうか? まさか一度さきに別に小文字を大文字に書き直して正規表現を当ては めてから元の小文字に戻すという芸当はされてないと思います。 私は憶測ですが正規表現上で小文字と大文字を同一文字だと規定し ているように思えます。 # 文字コードレベルだと高とはしご高の関係に近いと思います。 >59 お勧めのありますか?
61 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 00:05.net] >>6 くらい通読して出直してから議論してくれよ。でなきゃこんなやりとり無駄だよ。 いや、煽りじゃなくてマジでさ。
62 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 02:10.net] >>6 の本って目次だけ見ると各ツールの「実装」について述べてる みたいだけど、正しい「定義」については載ってるの?
63 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 02:15.net] 規格としては POSIX 1003.2 があるけど、 正しい定義なんてものはないと思う。
64 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 02:50.net] >>62 『正しい「定義」』なんてないんだからおまいらの議論は不毛だって言ってんの。 中途半端な知識と思い込みだけの虚しい空論だよ。
65 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 03:32.net] >>62 たしかに目次には各ツールの実装についての記述が目立つ。 だが、この本のキモは4章と5章だ。 君が正規表現をある程度自在に扱えるのであれば、 この二つの章を読むだけでも価値はある。 とりあえず話はそれからだ、と思うぞ。
66 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 06:07.net] 文字クラス中の - が文字コードでの連続を表すか文字としての連続を表すかは実装依存です、 で終了。
67 名前:62 [03/02/23 14:33.net] >>63-65 いや、>>66 の言うように実装依存だと思ってたから、 正しい「定義」が載ってるなら、読んどこうかと思ったんですが。 >>61 の発言を(それまでの流れと併せて)読むと、さも載ってそうなんですが、 目次見たら(-_-)ぁゃιぃ…だったので。
68 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 14:53.net] www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap09.html 規格が「正しい」かどうかは別として…
69 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 15:30.net] 正規表現の定義ねぇ。どうもどこかの団体がきっちりまとめた規格 のような「定義」を期待してるようだが、このあたりのハナシは計算 機科学色が強いから定義など教科書の数だけある、と言ってみるテスツ。 本質はみな同じのはずだけどナ。 しかも見慣れぬ数学記号飛び交う抽象的な議論になるから、 オライリー本で充足しているヤシにはカルチャーショックだろう。 大学の図書館でも逝け。
70 名前:61 mailto:sage [03/02/23 18:23.net] >>67 > >>61 の発言を(それまでの流れと併せて)読むと、さも載ってそうなんですが、 > 目次見たら(-_-)ぁゃιぃ…だったので。 漏れの発言を勝手な解釈すんなよ。 正しい「定義」なんて載ってるわけないだろ。正しい「定義」なんてないんだから。
71 名前:61 mailto:sage [03/02/23 18:33.net] >>67 ていうかあれだ、「定義」の話じゃなくて「規格」の話をしたいのか? 「定義」の話なら、>>69 の言うように、 計算機科学(の世界だと「正則表現」の方が通りが良いか?)の本でも 紐解いて読んでみるのが良いと思う。 そうでなくて、単に、 文字列バターンマッチに使われる「正規表現」の正しい「規格」の話、 ってことなら、そんなものは無い。 強いて言えば、>>68 くらい。
72 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 18:37.net] >>67 「定義」=「決め」でしょ。 その場その場で都合のいいように「定義」するわけだから 「正しい『定義』」なんてのはあるわけがない。
73 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/23 18:39.net] >>67 じゃ、まずは「正しい」の定義から始めようか。
74 名前:61 mailto:sage [03/02/23 19:06.net] というわけで、このスレは、「ホップクロフト&ウルマンを輪読するスレ」になりますた。
75 名前:62 mailto:sage [03/02/24 03:14.net] 規格として[a-z]の解釈について正しい定義はあるのか? っていう議論中に、「コレ読め」と言われたら載ってるように 見えても仕方ないと思うんですがねぇ。 「>>6 に載ってないから無い」、とは言えんでしょ。 何の為に読めと言ったのか聞いてよろしい?>>61
76 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/24 05:19.net] POSIX 1003.2 に厳密に従っていればこれにある通り。 www.linux.or.jp/JM/html/LDP_man-pages/man7/regex.7.html が、世にある実装は大抵そうでない。
77 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/24 18:47.net] >>76 見た感じ、EBDICでもロケールが英語なら[a-z]は 英小文字のセットとして評価されるべきみたいですな。
78 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/14 03:37.net] >>75 全く違う。 そもそも君の話は正しい定義がこの世に存在する事を 前提としている。しかし実際はそのようなものは ないわけだ。(「正しい」の意味が私の考えている ものと違うならわからないが) そのことを理解するために(というか議論のための 基礎知識を得るために)読んでおくべきと 61 は 言いたかったのだと勝手に解釈してみる。 厳密な定義という意味で正しいと言っているなら 計算機科学の教科書をひもといてみるといいかもなあ。
79 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/14 09:29.net] >75 そんなマヌケな話を避けられるようになるよ、 とそういう意味で勧めてくだすったんだろう。
80 名前:75 mailto:sage [03/03/15 03:46.net] >>78 >そもそも君の話は正しい定義がこの世に存在する事を前提としている。 シテネーヨ。 つーか著名ツールの実装に関する本を読んだ所で、 [a-z]の解釈は〜という議論に決着つくのですか。 1-60までのスレの流れと、>>61 の勧めた>>6 の内容を 良く見てから出直して下
81 名前:さい。>>78 ,79 [] [ここ壊れてます]
82 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 08:44.net] 取り合えず読んでみる、と言う選択肢は 意図的に無視されているのだろうか…
83 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 10:24.net] もともと [a-z] なんていう表記は、素な正規表現/正則言語にはない。 でもそれじゃ面倒だから - で繋いだ2つの文字の間の文字群を略記する方法が、 及び実装としては単に文字コードを繋ぐ方法がデファクトスタンダードになった。 それを勘違いしたバカが [a-z] は論理的なアルファベットを意味すべきだとか言い始めて [[:alpha:]] や \l やら \a が導入されるようになったり、変な挙動をする実装もでてきたかもしれん。 でここでPOSIXなんて有名無実なものが定義されたわけだ。 なのにさらにバカが [a-z] の正しい解釈、定義を教えろとかいう。 やれやれだ。
84 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 13:23.net] ここは62=75の脳内正規表現を研究するスレになりますた。 # 素直に勉強してから出直せばいいのに。。。
85 名前:62=75 mailto:sage [03/03/15 22:06.net] >>82 やれやれとはこっちが言いたい。 [a-z]の解釈が文字コード依存なのは承知済みだっつーの。 >>61 のタイミングで論議を不毛と評しつつ、正規表現の本読めと 言われたら、規格か何かが載ってるとしか思えんでしょうが。 著名ツールの実装見たところで、議論の不毛を悟れますか?
86 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 22:43.net] 少なくとも読めば実装により異なることは察することができたかもね
87 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 22:46.net] 規格自体を読みたいなら68にリンクがあるし、なんでそう粘着してるんだろうか
88 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 22:51.net] なぜに著名ツールの実装しか載っていないと決めつけ 勝手な解釈で話を進めるのだろう? とにかくおかしな前提と曲解が多い上に粘着だ。
89 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/15 23:53.net] もう放置しようよ……。
90 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/16 00:39.net] 非放置国家 2ch
91 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/17 23:40.net] >>87 決め付けてませんが。 >>62 で実装以外の内容(具体的に規格など)は 載って無いかと聞いてるんだし。 おかしな前提・曲解・粘着は認めますがね。 で、偉そうに読めとか言った>>61 は何処逝ったの?
92 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 01:11.net] >>90 > で、偉そうに読めとか言った>>61 は何処逝ったの? 読んだら出てくるんじゃねーの?
93 名前:90 mailto:sage [03/03/18 01:29.net] とっくの昔に読んでいるんだが… (立ち読みでざっとだけど)
94 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 01:39.net] 形式言語系の本は読んだのかYO!
95 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 01:58.net] >>92 そんなの読んだうちに入らん。
96 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 02:02.net] 理屈が通用すると勘違いせず、粘着は放置しましょう
97 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 02:15.net] 腹が減ってるもんで こんなのでも食いついてしまうんです。
98 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 02:36.net] >>90 君が何を知りたいのか、 おじさんわかんなくなっちゃったよ。 ここらでひとまず 疑問点を整理して箇条書きにしてみないか?
99 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/18 22:00.net] 技術系の本を立ち読みしただけで読んだ気になれる人には 何を言っても無駄ではなかろうか。
100 名前:山崎渉 mailto:(^^) [03/04/17 12:30.net] (^^)
101 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
102 名前:名無しさん@お腹いっぱい。 mailto:age [03/04/22 15:32.net] 『詳説 正規表現 第2版』 ISBN4-87311-130-7 本体価格5,400円 が5月に
103 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
104 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/22 23:53.net] >>101 おっ。 ソースどこ?
105 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/23 00:54.net] 定義うんぬんよりも、便利な方がいい。 というわけで、 (?# (?: (?= (?! (?<= (?<! (?> (?()
106 名前:名無しさん@お腹いっぱい。 mailto:age [03/04/23 16:36.net] >>103 オライリーのメルマガ
107 名前:名無しさん@お腹いっぱい。 [03/04/24 11:01.net] 正規表現(regular expression)の名前の由来はなに? regularをなぜ正規と略したんだろう? 「正式にきめられていること。正式の規定」という意味の正規では 幾分意味不明なんじゃないだろうか? むしろregular verb(規則動詞)の意味のregularと捉えるべきで、 「規則表現(法or式)」とでもした方が文字列の規則性を規則的に表現するもの という意味でより素直で的確なんじゃないだろうか。 ここにはnormal distributionを正規分布と略し日本語としては 意味不明にしてしまったのと同様のセンスの無さが感じられる。
108 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 11:51.net] 「function」を「関数」と訳すアフォといっしょだろ。
109 名前:名無しさん@お腹いっぱい。 [03/04/24 11:54.net] regular に合うような日本語単語を考えると 正規、正則、規則、規律、規則的、整然、合式、本格的、定常、完全、定例 などが挙げられる。 正規に違和感を感じるのは同意。 ただし、規則だと regular より rule の方を感じる。 regular expression を長々と訳すならばオレテキには 規則正しい表現法 となるが、あとはそれをどのように短くするかだ。 正規表現には違和感あるが 規則表現にはさらに違和感ある。 規則正しい生活を規則生活と省略するのに似ている。
110 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
111 名前:名無しさん@お腹いっぱい。 mailto:age [03/04/24 13:46.net] わたしは特に違和感ない。 複数の体系の共通項的要素を抽出して、どれをもあつかえる 単一の体系にまとめることをCS的に正規化というでは?
112 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 13:57.net] 正則表現といわれたほうがシックリするわ。
113 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 14:15.net] >>107 「函数」が正解、という主張ならそれは翻訳の問題ではなく 日本の戦後国語教育の問題なわけだが
114 名前:107 mailto:sage [03/04/24 14:55.net] >>112 > 「函数」が正解、という主張なら 違う。
115 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 15:38.net] >>113 それならそれで108なみ詳細な解説きぼんぬ
116 名前:113 mailto:sage [03/04/24 17:11.net] >>114 > それならそれで108なみ詳細な解説きぼんぬ どきっ!! い、いやぁ、「function」は普通に訳したら「機能」じゃないかなぁ〜、 なんて思うので。 なんで、「関数」になったのか疑問なので。 やっぱり、かっこいいからかなぁ。
117 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 18:10.net] 数学方面なら「正則」とするところなのに、情報数学方面では「正規」の方が 定着しているということなのか? >>115 数学で既に訳語があったからという単純な話なんでは。函数→関数の 書き換えはまた別の話だが。古い先生だと「関数」の表記を絶対使わない人 もいるね。自分も函数の方がいいと思う
118 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 18:38.net] 中国語が英語から「function」という英単語を輸入するとき それを「函数」と翻訳した。 函は中国語で「ファン」と発音し「function」の「ファン」に似ているところからきている。 そのあと日本は中国から「函数」という言葉を漢字で記述された文字として輸入した。 そして「函」を「カン」と発音した。 戦後の日本の教育において「函」が教育仕様内の標準的漢字から外れるという理由から およそ同義で同音の「関」に置き換えられた。 すなわち「function」の「fun」を元にしてその部分は 以下の経緯で「関」に変わった。 英語の「fun」 ↓発音の類似性から 中国語の「函」(ファン) ↓同じ文字 日本語の「函」(カン) ↓発音の類似性から 日本語の「関」(カン) こういう改変に次ぐ改変で「関数」という言葉が生まれた。 もはや「関数」という言葉にはそう表現する適切な理由がない。 情報系の技術屋なら「function」ないし「ファンクション」 と表現すれば良いのだ。どうしても漢字で書きたければ「機能」で良し。 「関数」だなんていい加減な言葉を使うなら 「class」を「学級」とでも表現してくれた方がまだましと言えよう。
119 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 19:37.net] 函(はこ)の数と意味も掛けてあるから、やはり捨て難い訳ではある
120 名前:名無しさん@お腹いっぱい。 mailto:age [03/04/24 21:06.net] >>118 classは「級」でいいはずだけど、「きゅう」ではみじかすぎて わからんからそのまま「くらす」。
121 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 23:01.net] くらす、きさん!!
122 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/24 23:41.net] もう「関数」で慣れちゃってるからなぁ。 「機能」と訳したところで 意味がわかりやすくなるわけでもないし。 「正規表現」にしても「関数」にしても おれにとってはある概念に対するラベルでしかない。
123 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 00:41.net] 「関数」は一つの名詞なので、 一旦覚えてしまえば 「関数」という訳について不自然さは感じにくい。 でも「正規表現」は「正規」と「表現」の複合語であるから、 正規な表現? という意味不明さはいつまでも残る。
124 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 00:43.net] "regular expression" というからには regular じゃない expression もあるんでしょうか? たとえばどんなのですか?
125 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 08:08.net] >>123 fgrepに書く検索パターン
126 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 11:26.net] >>115 プログラミング用語での function は単なる「機能」ではなく、 数学的な(値を返す) function としてのニュアンスが込められているんじゃ ないのかなあ? 関数型言語ではいうに及ばず、FORTRAN とかでもそんな感じだし、 C だってもともと void 型なんてないし。 # 正規表現と関係ないので sage
127 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 11:34.net] 「機能」も造語っぽくない? 明治あたりの。
128 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 14:00.net] 関数が函数の書き換えだと知ったとき、小学校の算数の時間で関数の 説明に「ブラックボックス」という言葉を使っていたのを思い出した。 この書き換えは最悪だと思ったな。 しかし、いくら原語が同じだとしても、関数と機能は日本語としては完全に 別物になってしまっている。function key の function は、やはり「機能」の 意味でないと落ち着かない。 >>122 「正則」は、ほとんど術語としてでしか使われることがないけど、「正規」は 普通の文章でも使われるからね。「正規」と「表現」の結び付きが強くなって しまう。
129 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 14:00.net] expression にしても、「式」とも訳される場合もあって悩ましいことこの上なし
130 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 15:18.net] じつは日本語って、語彙が豊富? まぁ、ほとんど訳語だけど。。。
131 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 16:19.net] >>127 > function key の function は、やはり「機能」の意味でないと落ち着かない。 それは「function key」を「関数キー」と読んでる人に言ってくれ。いるのか? Google で検索しても 163 件しかない上に、関数電卓の「関数キー」 (sin 関数のキーとか) だの「ハッシュ関数のキー」だのばっかりなのだが。
132 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 21:24.net] 「ファンクションキー」と言ってるのしか聞いたことがないが、この「ファンクション」 は「機能」の意味でないと落ち着かないと言ってるだけだ
133 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/25 22:31.net] >>129 自国語で数学的概念を表現できる国は少ないほうだと思われ。 微分、積分、階乗、無理数、有理数、etc... functionに対する訳で機能と函数で揉めるのは贅沢なことなんじゃないのかなぁ…… ていうか、算数、数学の教科書が日本語だけで完結できること自体、 ほかの国から見ると不思議なことなんじゃないの?
134 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 01:12.net] 何の話をしてるんだか・・・
135 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 01:48.net] では、日本における性器表現についてどうぞ ↓
136 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 02:04.net] [まち]んこ
137 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 05:40.net] \(藁田\|ワ[ロラ]タ\)
138 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 13:48.net] >>135 >>136 こういう日本語の正規表現の使える実装にはどんなのがありますか? Ruby, 鬼車, jperl, xyzzy, Emacs, あたりは使えると思うけど、ほかには?
139 名前:名無しさん@Vim%Chalice mailto:sage [03/04/26 13:59.net] Vim
140 名前:名無しさん@お腹いっぱい。 mailto:yosage [03/04/26 18:15.net] perlとかなら /(ma|chi)nko/i みたいに i オプションつけることで 大文字小文字を同一視してくれる機能が一般的に普及してますね。 grepとか大抵の性器表現できるツールにはあるみたい。 そこでほしいのが平仮名片仮名同一視。 /[まち][んむ]こ/i とすれば「マむコ」にも「チンこ」にもマッチしてほしいわけ。 そういう機能がついた性器表現ってどういうツールにございますか? あと /ベートーヴェン/i で検索したら 「ベートーベン」や「べえとおべん」にもマッチしてくれる ようなのもあるものでしょうか?
141 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 18:53.net] >>139 後者は正規表現の範疇ではないような。 前者はあってもよさそうだね。
142 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 19:16.net] 文字クラスの拡張でしょうか
143 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 20:15.net] >>141 日本語用文字クラスってわけね。 しかしそんな日本でしか使えないもんはツールで対応すべきだな。 >>139 >/ベートーヴェン/i >で検索したら >「ベートーベン」や「べえとおべん」にもマッチしてくれる こんなん正規でも正則でもない非正規表現だ。 >>139 は正規表現使うのやめた方が幸せになれそうだよ。
144 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 20:25.net] >>139 Migemoの辞書をカスタマイズすればできるようになるよ
145 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 21:25.net] >>143 そういう問題じゃなかろう・・・
146 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 21:27.net] 日本語正規表現の使える実装は Ruby, 鬼車, jperl, xyzzy, Emacs, Vim で全てですね?
147 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/26 22:05.net] >>145 いいえ。
148 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/27 02:24.net] 文字クラスとか自分で設定できる正規表現みたいなのが あればいいんじゃないの。 どうせ perl だって場あたり的に好きなように拡張してるんだから。
149 名前:名無しさん@悩み中 [03/04/28 05:24.net] sed ですが、 [[:xdigit:]]\{2\} にマッチする文字列のなかで、 \(61\|75\|6f\) にマッチしないようなものを指定したいとき どないすればよろしい?
150 名前:148 [03/04/28 05:37.net] やっぱり、先に \(61\|75\|6f\) にマッチする奴を退避しておいてから、 [[:xdigit:]]\{2\} にマッチするやつを指定するしかないんかな…
151 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/29 02:16.net] 誰か、正規表現だけで会話するスレ作ってくれ。
152 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/29 03:26.net] /いったい何を会話するというのだ/
153 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/29 04:09.net] >>150 それこそ言いだしっぺの法則だろ。正規表現だけで会話したい >>150 が立てれ。
154 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/29 09:51.net] 駄スレ立てんな。
155 名前:名無しさん@Meadow mailto:sage [03/04/30 10:51.net] >>153 $mes153 =~ s/。//; reverse(split(//, $mes153)); わかた? 結果は、「なんてつたレスだ」
156 名前:名無しさん@お腹いっぱい。 [03/04/30 11:12.net] >>154 こうなりますた。 $ perl -e 'quotemeta($var='駄スレ立てんな。'); print reverse(split(//,$var));' B∧んてぉ洛スμ・
157 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/30 11:29.net] >>150 名スレの予感
158 名前:名無しさん@Meadow mailto:sage [03/04/30 14:53.net] >>155 jperlじゃないとだめですね。perl用もかきますた。 ($var='駄スレ立てんな。') =~ s/立(.+)。/たつ$1/; while ($var) { if ($var =~ s/^[\xA1-\xFE][\xA1-\xFE]// or $var =~ s/^.//) { push(@str, $&); $var = $'; } } print reverse(@str), "\n";
159 名前:名無しさん@お腹いっぱい。 [03/04/30 15:47.net] >>156 2chですから、性器表現とこれを用いた強制痴漢ならあちこちに。
160 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/30 21:21.net] \hなのはいけないと思います!
161 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/30 23:49.net] \SM(?:性器拡張(?!器具))
162 名前:名無しさん@Meadow mailto:sage [03/05/01 15:28.net] >>157 何やってんだろな、漏れ。 ($var='駄スレ立てんな。') =~ s/立(.+)。/たつ$1/; while ($var =~ s/^[\xA1-\xFE][\xA1-\xFE]// or $var =~ s/^.//) { push(@str, $&); } print reverse(@str), "\n"; で十分
163 名前:セった。この全角文字対応の正規表現は、euc-jpの奴ね。 でもさ、やっぱ正規表現で会話するってむずいよ。>>150 よ。 [] [ここ壊れてます]
164 名前:名無しさん@お腹いっぱい。 mailto:s/つーか全角空白使ってる時点でダメダメ/sage/; [03/05/01 21:39.net] print while s//>>161 普通過ぎてつまらん/;
165 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/01 21:48.net] >>161 それは正規表現ではなく perl script というのではないだろうか。
166 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/01 21:50.net] >>163 の的確すぎるツッコミに藁。
167 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/01 21:59.net] >>1-164 これら全てが正規表現であることは自明なのであります。
168 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/02 08:30.net] Perl正規表現の質問です。 Ascii文字コードは、アルファベット大文字→ちょこっと記号類→アルファベッ ト小文字の順に並んでるですが、以下のようになるのはなぜですか。なぜ、ア ルファベット大文字しか出てこない? $ perl -e 'for(A .. z) {print $_, ", ";}' A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
169 名前:名無しさん@お腹いっぱい。 [03/05/02 11:26.net] >>166 駱駝本(第二版)の p.103 の脚注 *32 に、 > もし指定された最終値が、マジックによる増加によっては生成できない > ような値なら、最終値のケタ数を超えない範囲で値を生成する。 と書いてあるけど、違う?
170 名前:名無しさん@Meadow mailto:sage [03/05/02 14:27.net] >>167 ありがとん。 >マジックによる増加によっては生成できない というのが分からなかったので、駱駝本(第3版)引いたら、「マジックイン クリメント:普通の数値と同じようにして、英数字からなる文字列の値に「1 を加える」方法を知っているインクリメント演算子のこと。」だって。Aは、 16進数で41、Zは、5A。5B以下60までは、[、\, ], ^, _, `で、61から小文字。 一つずつインクリメントされて並んでいるが、できないところを見ると、「英 数字からなる文字列」だけをサポートしている演算子なんだね。 第2版の103ページにあたる121ページあたりにも、A .. Zやa .. zの例はある けど、A .. zはない。
171 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/02 22:35.net] 文字のインクリメントもちゃんと桁上げされるんよ。 #perl > result.txt $a = "a"; print ++$a, "\n" while (length $a < 3);
172 名前:169 mailto:sage [03/05/02 22:38.net] あ、これじゃ for (A..Z) の説明にはならないな。
173 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/02 22:50.net] >>166 全然正規表現じゃなかった・・・。
174 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/04 07:28.net] /\x82\xad\x82\xbb\x82\xc1/ sjis
175 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/05 11:59.net] >>172 パターンマッチさせる意味は?
176 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/05 18:39.net] >>172 1) ネタがないから 2) わし166だので、172に揶揄されて「くそっ」と
177 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/05 18:44.net] ちがった、171にバカにされて・・・ ~~~
178 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/05 19:18.net] おまえらみんな(ち|い|う)んぽ。
179 名前:名無しさん@お腹いっぱい。 [03/05/07 16:30.net] 『詳説 正規表現』を読んでいるようなエキスパートの人に質問です。 「"a" が偶数個、"b" が奇数個含まれる、すべての文字列を表す正規表現」 って分かりますか? 自分は答えを見てもよく分かりませんでした。
180 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/07 17:37.net] まずどのような「状態」があるのかを考える。この場合は 1. aが偶数個、bが偶数個 2. aが偶数個、bが奇数個 3. aが奇数個、bが奇数個 4. aが奇数個、bが偶数個 で初期状態が1でゴールが2となる。 まず最初に1から2に行くには /b/ の1通り。aが来ると4に行く。 4からスタートして1もしくは3を経由し2へ行く最短パターンは /(aa|bb)*(ab|ba)/ 以上から /b|a(aa|bb)*(ab|ba)/ が状態2に行き着く最短パターン。←第1段階 次に状態2からスタートして考えると /aa/ で3を経由して2へ戻り、 /bb/ で1を経由して2へ戻り、/ab|ba/ では4へ行ってしまう。 4へ行ってしまった後は先に考えた「2へ行く最短パターン」で帰って来れるので、 2から始まって2に戻るパターンは /aa|bb|(ab|ba)(aa|bb)*(ab|ba)/ となる。 これは0回以上起こり得ることを考慮して第1段階と結合すると /(b|a(aa|bb)*(ab|ba))(aa|bb|(ab|ba)(aa|bb)*(ab|ba))*/
181 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/07 18:18.net] >>177 余裕があれば一度オートマトンに関する本を読んでみて。 www.amazon.co.jp/exec/obidos/ASIN/4320029488/ref=sr_aps_b_1/249-5563000-9397957 の前半はすごくわかりやすいよ。 そこまでしなくても、一度 >>178 たんのいってることを katsu.watanabe.name/grep/p7.html みたいな状態遷移図にしてみるといいかも。
182 名前:177 mailto:sage [03/05/07 21:15.net] 自分がこの問題を見たのは古い UNIX MAGAZINE で、内容を簡単に引用しますと … 偶数か奇数かを調べるには文字の数を2で割った余りが0か1かという 決まった2つを調べればよいため、正規文法で記述することが可能。 なお、この文法では a に関して2つ、b に関しても2つの場合があるので、 2 x 2 = 4 つの記号(状態)を用いる。 A → aB B → aA C → aD D → a A → bC B → bD C → bA D → aC A → b D → bB 状態 A … a が偶数個で b が奇数個の文字列 状態 B … a が奇数個で b が奇数個の文字列 状態 C … a が偶数個で b が偶数個の文字列 状態 D … a が奇数個で b が偶数個の文字列 以上により答えは ((a|b(aa)*ab)(b(aa)*b)*(a|ba(aa)*b)|b(aa)*b)*((a|b(aa)*ab)(b(aa)*b)*ba|b)(aa)* となる。 正規表現でうまく表現できない問題に当たったときは、いったん正規文法で記述してから 正規表現に変換すると解決できる場合も多い。
183 名前:長いので分割。 mailto:sage [03/05/07 21:17.net] … だそうです。 果たして↑の長い正規表現が >>178 さんの答えと同じものを表しているのかどうか 分かりませんけども。 >>179 有用な本と URL の紹介、ありがとうございました。 それにしても最初にパッと見て「この問題は有限個の状態で表せる」って思いつくかなぁ? 不思議だ。
184 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/07 21:36.net] >>181 > それにしても最初にパッと見て「この問題は有限個の状態で表せる」って思いつくかなぁ? それはパッと見というよりは、冷静に分析してわかるものでしょ。 慣れれば一瞬で分析できるようになるかもしれんけど。
185 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/07 22:50.net] >>178 ,180 それは「aとbだけからなる文字列」について?
186 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 00:00.net] >>183 んなもん s/[ab]/[^ab]*&/ すりゃ良いだけじゃん
187 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 03:51.net] >>184 それって、正気表現でつか?
188 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 04:49.net] >>183 のために [^ab]* をはさみまくってたら、 「長すぎる行があります!」 っておこられたよ・・・
189 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 10:42.net] /[^ab]*(b|a([^ab]*(a[^ab]*a|b[^ab]*b))*[^ab]*(a[^ab]*b|b[^ab]*a))([^ab]*(a[^ab]*a|b[^ab]*b|[^ab]*(a[^ab]*b|b[^ab]*a)([^ab]*(a[^ab]*a|b[^ab]*b))*[^ab]*(a[^ab]*b|b[^ab]*a)))*/
190 名前:名無しさん@お腹いっぱい。 [03/05/08 12:54.net] >>187 それで baaabaaab がまっちすんの?
191 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 13:27.net] 以下のようなデータから、著者の部分(最後の括弧から括弧まで)を 取り除きたいと思います。 木立(こだち)のなかに(夏目弱石) 山の上の芋粥(いもがゆ)(芥川蛇の介) s/(.+?)$//; ですとうまくいきません。perl5.6で、文字コードはeucです。 webprog板のPerl初心者スレで聞いたのですが、どうも解決しないのです。 どうしたらよいか教えていただければ幸いです。
192 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 13:40.net] >>189 セイキヒョーゲンの問題ではなくパールの問題っぽいですね。 そっちのスレ行った方がよいかも。 できるなら「うまくいきません」を再現させる できるだけシンプルなコードを添付してほしいな
193 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 13:41.net] >>189 プログラム技術板にPerlの質問スレがある。webprogに特化したこと以外はそっ ちの方がいい。 s/([^()]+?)$//;
194 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 13:44.net] Perl の正規表現では ( ) は、後で \1, \2, ... にマッチさせるための メタ表記だから、括弧そのものにマッチさせたければ \( \) と書かなければ ならない。(egrep や emacs とは逆)
195 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 13:44.net] >>190 では、Perlスレ行ってきます。って、unix板にはなかったんで、 プログラム板ですね。ありがとございますた。
196 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 13:47.net] あれれ板探してたら、2つもレスが。 >>191 それ、jperlなら動くんでしょうが、perl5.6ではだめでした。 >>192 いや、全角括弧なんです。
197 名前:名無しさん@お腹いっぱい。 [03/05/08 13:53.net] >>192 それは \x28 や \x29 の場合だけでしょう。 今でてきてるのは \xa1\xca と \x1a\xcb。 ちなみにperlの最短一致は マッチの先頭位置を後ろにずらす効果がないので注意。 ($b="abcabc")=~s/b.*?c$//; print "$b\n"; # output "a" 189の要望はここで"abca"を出してほしいということで叶わない
198 名前:189 mailto:sage [03/05/08 14:10.net] >>195 >perlの最短一致は >マッチの先頭位置を後ろにずらす効果がない なるほど。では、>>189 のコードは、 木立 山の上の芋粥 を出力してもいいはずですが、何も出力しない(何にもマッチしない)んです。 どうしてですか。よろしければ教えてくらさい。
199 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 14:14.net] s/(.+)(.+)$/\1/;
200 名前:189 mailto:sage [03/05/08 14:19.net] >>197 これだと、 木立 山の上の芋粥 になってしまいます。求めているのは、 木立(こだち)のなかに 山の上の芋粥(いもがゆ) です。
201 名前:197 mailto:sage [03/05/08 14:22.net] マジ? 手元の Perl 5.005_03 だと求めているのになるのだが・・・
202 名前:189 mailto:sage [03/05/08 14:28.net] >>199 すみませ〜ん。 求めているものになりました。いろんなスクリプト混ざり合ってたので 混乱しました。 (.+)が最長一致するから(.+)でいいってことに気づきませんでした。
203 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 14:45.net] perlの正規表現と日本語文字列との相性の悪さを 実感する問題だったなあ
204 名前:192 mailto:sage [03/05/08 14:50.net] 本当に全角だったのか。失礼。だとすると、/(/ が EUC の 2 バイト目と 文字に一致するとは限らないので注意。全角文字の 2 バイト目と次の文字の 1 バイト目がそれぞれ \xa1 と [\xca-\xcb] にマッチする場合があるので、 文字列「検便」\b8\a1\xca\xd8 にも「(」がマッチしてしまう。 日本語 EUC の 1 文字 にマッチさせたいなら、厳密には (\x8f?[\xa1-\xfe]{2}|\x8e[\xa1-\xfe]|[\x00-\xff]) にマッチさせなくてはならない。 Perl6 の国際化された正規表現が普及して、こんな知識は不要になって くれれば一番いいのだが…。
205 名前:192 mailto:sage [03/05/08 14:56.net] この例の場合、最後の括弧の中は全角ひらがなしか入らないから関係ないけどね。
206 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/08 15:51.net] 5.8ならuse utf-8; use Encode;して適切なエンコード指定でファイル読み込ませれば解決するぞ。
207 名前:名無しさん@お腹いっぱい。 [03/05/08 21:50.net] 61.210.205.4/ これなんだろ@@@
208 名前:名無しさん@お腹いっぱい。 [03/05/08 23:46.net] WebP
209 名前:rog板の「正規表現道場@2ch Part2」はご存知? http://pc2.2ch.net/test/read.cgi/php/1038146241/ [] [ここ壊れてます]
210 名前:189 mailto:sage [03/05/09 15:02.net] >>206 知ってます。最近、書き込み少ないので、こっちにしました。 あっちでは、以前、いろいろ答えてあげてたんですが。 実は、他のやり方ならいろいろ考え付いたのですが、 s/(.+?)$//; がなぜだめかが知りたくて質問したのでした。 >>195 だけがその質問に答えてくれました。そいえば、それも らくだ本で読んだ覚えあったなぁと。しかし、「最短一致がマッ チの先頭部分を後ろにずらしてくれない」という理由ですと、 なぜ、「木立(こだち)のなかに(夏目弱石)」が、「木立」 にならないか、いまだに不明です。($b="abcabc")=~s/b.*?c$//; で$bが'a'になるんだから、そうなってもいいはずですよね。 # でも、3つのスレで「()をエスケープしろ」っていう返事をもらったのにも # びっくり。漏れは、navi2chなので、半角と全角は一目瞭然ですが、IEで見 # てみたら、たしかに女滋養に見えますた。
211 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/09 15:32.net] 女滋養(;´Д`)ハァハァ
212 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/09 17:39.net] 生粋のプログラマーなら日常的に半角全角の違いがすぐ分かる環境を望む。 そうじゃない人はあまり気にしないので女痔用に見えても兵器。
213 名前:名無しさん@Meadow mailto:sage [03/05/09 17:52.net] 女痔用 (´;。;△;。;)キモ!!!!!!!!!!!!!!!
214 名前:名無しさん@Meadow mailto:sage [03/05/09 21:33.net] >>207 漏れは、navi2chでも迷ったっぞい。
215 名前:189=207 mailto:sage [03/05/09 22:20.net] >>211 はっきり言っておくんなさい。 たすかに、fontの問題かもすれんですよ。 だかーら、記号類は半角とか全角とか注釈つけとけと… でもって、半角カタカナなんか問題ない時代になったんだなー、と。
216 名前:名無しさん@お腹いっぱい。 [03/05/11 04:17.net] 半角か全角かをいちいち説明されないと違いの分からないような 素人さんにはそもそも質問なんかされてないんですよ
217 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 15:57.net] 189が意図的に使い分けてるという保証もなかったわけだが。
218 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 16:17.net] >>214 はじめから euc と断ってたし、 対象テキストデータとか試しに提示したダメコード片を良く見れば、 意図的に使い分けてることは十分想像できたと思うが。 質問の仕方や内容からも半角全角混同してるようなレベルの質問とは思えなかった。 つうか、>>207 は何をいまだにハマってるんだ? s/(.+?)$//; なら「木立」になるから問題なかろう?
219 名前:191=214 mailto:sage [03/05/11 16:20.net] >>215 一応そう想定して答えた。
220 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 16:40.net] >>216 釈迦に説法か。スマソ
221 名前:189=207 mailto:sage [03/05/11 18:24.net] >>215 いえ、それが、全行出力されちゃうんです。 ちょっと、やってみていただけませんか。(インデントはわざとしません。) --- while(<DATA>) { chomp; s/(.+?)$//; print "$_\n"; } __DATA__ 木立(こだち)のなかに(夏目弱石) 山の上の芋粥(いもがゆ)(芥川蛇の介)
222 名前:215 mailto:sage [03/05/11 18:36.net] >>218 ん〜、なんないよ (5.005_03) 。 5.6 を試す環境が無いので申し訳ないでつが、Perl のバージョンの問題?
223 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 19:16.net] >>218 5.6.0 で試したらそのまま出ますた。 これまでの経緯をちゃんと読んでないんだが、 s/([^)]+)$//; じゃダメ?
224 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 19:23.net] >>220 それだと、 [^)] の部分は [^\xa1\xcb] なのでダメだと思われ。 >>204 の方法だとうまくいくようになるの?
225 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 21:08.net] >>218 5.8.0だと、191の式でうまくいくんだがなぁ。 while(<DATA>) { chomp; s/([^()]+)$//; print "$_\n"; } __DATA__ 木立(こだち)のなかに(夏目弱石) 山の上の芋粥(いもがゆ)(芥川蛇の介) 木立(こだち)のなかに 山の上の芋粥(いもがゆ)
226 名前:189=207 mailto:sage [03/05/11 21:30.net] 追試どうもです。 >>219 古いマシンに5.005_03(5.005_03 built for i386-linux)もあったのでやっ てみたら、奇妙なことに。 euc-jp-dos、shift_jis-unix → OK euc-jp-unix、shift_jis-dos → 行全体が出てくる v5.6.0 built for MSWin32-x86-multi-threadおよびv5.6.1 built for cygwin-multiでは、どれでもだめです(行全体が出てくる)。文字コードutf8 にしても同じ。 >>222 こりゃもう5.8にするべきですかね。
227 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/11 21:31.net] >>222 いやいや、たまたまうまくいっているように見えるだけでしょ。 >>202 さんのを参考にしる。
228 名前:195 mailto:sage [03/05/12 09:32.net] >>218 s/(.*?.)$//; にしとけ perlのバグだ 暇ならソースのMINMODあたり追いかけて
229 名前:189=207 mailto:sage [03/05/12 21:13.net] >>225 ありがとん。「。」毎に改行入れようとして、s/(.+?。)//;やってみたが、こ れすらできんかった。結局、perl5.6以上はjperlないから日本語処理を中心に してる場合は、使えないってことかなぁ。もち、~ohzakiさんとこに書いてあ るような注意をしたり、半角文字で置き換えたりすれば使えるげど、面どい。
230 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/12 23:01.net] >>226 5.8にしてEncodeつかう。
231 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/13 02:04.net] >>226 > 結局、perl5.6以上はjperlないから日本語処理を中心にしてる場合は、 > 使えないってことかなぁ。 違うっしょ。
232 名前:189=207 mailto:sage [03/05/13 07:23.net] >>227 やってみまつ。 >>228 じゃ、jperlでできるs/.+?[。!?]/$1\n/g;あたり、どやってやる? めんどいでしょ。
233 名前:189=207 mailto:sage [03/05/13 07:24.net] あら、s/.+?[。!?]/$&\n/g;だった。
234 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/13 11:05.net] >>229 あぁ、そういう話か。それはその通りですね。 でも、それは 5.8 の Encode とやらを使うと解決するってことなのでは。 っつーか、漏れは 5.8 動かせる環境無いので確認しようがないんでつが、 誰一人として Encode が一体何者なのか説明しようとしないのは何故?
235 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/13 11:39.net] >>231 use utf-8; use Encode; my $ENC = 'euc-jp'; # or 'cp932' binmode STDOUT, ":encoding($ENC)"; binmode STDIN, ":encoding($ENC)"; 普通に標準入出力にアクセスすればOK。スクリプト内に日本語書くときはUTF-8で。 っていうかperldoc嫁
236 名前:名無しさん@お腹いっぱい。 [03/05/14 01:43.net] >>232 perl 5.6 では不可能ということか?
237 名前:189=207 mailto:sage [03/05/14 08:50.net] >>232 まだ、5.8を試してないんですが、>>232 って、euc-jpの端末でeuc-jpのスクリ プト書いて、perlにutf-8で処理させるってことですね。utfサポートは、5.6 からあるので、mule-ucs+bdfフォントで、emacs上でprocess-coding-system (inputもoutputも)もutf-8にして、やってみたけどだめですた。 私が問題にしているのは、[](文字クラス)や+?、*?(最短一致)がマルチバ イトに対応しているかどうかということなのですが・・・
238 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/14 10:15.net] >>234 5.6時代から既に対応している
239 名前:189=207 mailto:sage [03/05/14 10:57.net] >>235 [](文字クラス)をテストしてみたけど、だめです。 utf-8で以下のスクリプト実行して見れ。jperlではOKですが・・・ --------- while(<DATA>) { chomp; while (s/.+?[。!?]//) { print "$&\n"; } print; } __DATA__ utf-8で処理させて下さいね。5.6でね。utfサポートは、 5.6からあるけど、このスクリプトだめぽ!>>235 は、何が 5.6時代から既に対応しているって言ってんの?変だよ。
240 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/14 11:10.net] >>236 use utf8; してる?
241 名前:189=207 mailto:sage [03/05/14 11:24.net] >>237 してなかったっす。 みなさん、ごめんなさ。
242 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/14 17:10.net] perl 質問スレにするなよ。
243 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/15 19:55.net] というわけで、これにて終了。 正規表現スレはここまでです。 あれ?
244 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/16 01:42.net] 単語に「マッチしない」のは どうやれば? ^\<word\> じゃないし。
245 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/16 03:07.net] >>241 そりを正規表現(だけ)で実現するのは難しいのでは? 普通は、grep なら -v とか、スクリプト言語なら !~ /word/ とかするんじゃないかと。
246 名前:189=207 mailto:sage [03/05/16 08:24.net] >>241 perlの拡張正規表現を使えば出来るよ。 /^(?!.*word)/
247 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
248 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/24 22:45.net] オ来リーの者じゃありませんが・・・ 『詳説 正規表現 第2版』 Jeffrey E. F. Friedl 著 田和 勝 訳 2003年5月発行 -- 5月27日発売 464ページ 本体価格5,400円 ISBN4-87311-130-7 テキストやデータの処理に欠かせない強力なツールとして瞬く間 に普及した「正規表現」。現在ではPerl、Java、VB.NETやC#など 数多くの言語やツールに標準で装備されています。その幅広い可 用性、柔軟性と比類ない強力さにもかかわらず、実際に正規表現 を使いこなすことは難しいです。本書は正規表現の概念を詳細に 掘り下げる一方で、数多くの言語やツールの実例を示しながら、 正規表現についての理解を深める解説書です。第2版では、豊富 な実例を使い、詳しくていねいに解説するスタイルはそのままに、 Perl5.8の新機能に加え、Javaと.NETの正規表現にもそれぞれ独 立した章を設けるなど、全編にわたって大幅に加筆がなされまし た。正規表現の本質を読み解く決定版です。とくに正規表現を使 いこなしていると自負している人にほど読んでほしい本です。
249 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 00:29.net] あれ?今日買ってきたんだけど27日発売だったのね…
250 名前:名無しさん@お腹いっぱい。 mailto:age [03/05/25 00:43.net] >>246 つーことで発売記念age
251 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:23.net] 素数にマッチする正規表現募集。
252 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:38.net] >>245 第1版と比較してのレビューきぼんぬ
253 名前:名無しさん@お腹いっぱい。 mailto:半額きぼんぬ sage [03/05/25 03:44.net] >>249 > 2003年5月発行 -- 5月27日発売 とあるからまだ無理なのでは
254 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:49.net] >>248 正規表現だけでなく、なんかしら言語使ってやればよい。
255 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:56.net] >>248 何故敢えて茨の道を行くのか?
256 名前:名無しさん@お腹いっぱい。 [03/05/25 05:07.net] >>245 これの第1版買ったのですが、いまいち難しかったです。 もっと易しい本ってないですか?
257 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 05:35.net] >>253 Ruby の初・中級者なら、「Ruby Magic―Rubyで極める正規表現」はお勧め。
258 名前:245 mailto:sage [03/05/25 10:21.net] >>249 第1版を持ってないので比較は出来ないっす。 # 買おうと思ったら第2版が出ることを知ったので待ったのだ。 ここに特徴や目次が紹介されているので見てもらうとして ttp://www.oreilly.co.jp/BOOK/regex2/ ttp://www.oreilly.co.jp/BOOK/regex2/contents.htm まえがきから第1版との違いを判断すると - Unicodeのちょっとした解説 - Perl5.003からPerl5.8対応に - Java1.4のjava.util.regexと、その他6つの正規表現パッケージの比較 - .NET framework正規表現の特徴と問題点、M$のドキュメント(貧弱らしい)の補足 のように言語サポートが新しくなった/増えたって感じ。 最初はHTMLのサンプルを少々追加する程度の予定(3ヶ月の見込み)だったみたいだけど、 結局は2年の歳月をかけて全面的に加筆修正することになったそうだ。 難易度は第1版と変わらないのではないかな? # 読み易くなってるのかもしれないけど。。 >>253 の期待には応えられないと思う。 > とくに正規表現を使いこなしていると自負している人にほど読んでほしい本です。 という宣伝文句があるくらいだしね。 >>250 いや、24日に買えたのよ。
259 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 11:05.net] 今日発売か。 昼休みに買ってくるか。
260 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 21:10.net] >>256 さん、どうですた?
261 名前:249 mailto:sage [03/05/27 21:28.net] >>255 さんのと、今日立ち読みした感じで、第2版も購入することにしますた。 そういえば、翻訳者 (監訳者) が変わってたんですね。
262 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 21:29.net] sed のタグ付き正規表現についてちょっと教えれ。たとえば、 {________I'm_dreaming_of_a_White_Christmas_} {_Just_like_the_ones_I_used_to_know__} {____Where_the_tree_tops_glisten_} の前後の余計な _ のトリミングをしようと思って sed 's/{\(_*\)\(.*\)\(_*\)}/{\2}/g' とやっても意図した結果にならない。\2 をうまくマッチさせる方法は? まぁこの例なら簡単に逃げられる - たとえば sed 's/{_*/{/;s/_*}/}/' - わけだが、apache の log とかの簡単なパース(並び替えとかそんな程度)を タグ付き正規表現でさくっと処理できれば楽でうれしい。よろしく。
263 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 21:38.net] 二個目の*がlongest matchしようとして 3個目の*にmatchさせたいであろう_まで持っていってしまうのが原因。 sed -e 's/{_*\(.*[^_]\)_*}/\1/'
264 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/28 00:59.net] '<,'>s@^@//@
265 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/28 01:03.net] 最少マッチって perl とか ruby にしかない? sed, grep 等の伝統的 tool にはないの?
266 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/28 01:07.net] >>262 ないよ
267 名前:名無しさん@お腹いっぱい。 [03/05/28 14:45.net] >>262 grepに最小一致の機能があったとして それの魅力はイッタイ何なのだろうか?
268 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
269 名前:262 mailto:sage [03/05/28 20:42.net] 確かに sed では使っても grep では使わないかも。 いや、でも後方参照する時に必要なこともありえますね。
270 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/29 10:14.net] >>257 昼休みにいきつけの書店にいったが売ってなかったんで。 帰りに別の書店で買った。 でもまだ読んでない… 通勤時間に読むっつーてもあれを毎日持ち歩くのは 重たいしなぁ。
271 名前:名無しさん@お腹いっぱい。 [03/05/30 21:59.net] 文字列中、丸括弧(全角、半角問わず)で閉じられた部分を取り出す表現を考えているけど、うまくマッチしてくれない。 (丸括弧の中に丸括弧は含まない。Perlの正規表現を使用) $string = '(22(1)'; if($string =~ /[((]([^()()]*)[))]/){ print $1; } else{ print "No match.."; } この場合は"1"がマッチするのを期待しているのだけど、なぜか"22"の部分がマッチした。 OS(UNIX/WinXP)、Perlのバージョン(5.0/5.8)の異なる環境で同じことを確認したけど、結果は変わらず。 さらに、文字コード(Shift-JIS/EUC)の違いでも、結果は変わらなかった。 "1"をマッチさせる別の表現はないですかね? # 全角"("の中にどうも半角")"の文字が隠れてるのかなぁ?(あくまでも推測)
272 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/30 22:42.net] >>268 おめな、2byte文字と1byte文字が同じに扱われると思ってるらしいな。たぶん、 文系のドキュソだな。しかも、すぐ上で2byte文字コードの話出てたの見てね えな。こいう、初心者質問は、webprogのPerl初心者スレ逝け。
273 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/05 14:26.net] >>268 Perl5.8.0 + UTF8 でやったら 1 になったよ。
274 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/07 12:10.net] [ ] のなかに '-' と ']' の両方を入れたい場合はどうすればいいのですか?
275 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/07 12:20.net] >>271 何で?
276 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/07 12:29.net] >>271 []-]
277 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/17 23:25.net] >>271 !.-[
278 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/03 21:13.net] 保守
279 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/08 11:49.net] regexp ml盛り上がってますね。読んでて楽しい。
280 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/08 14:02.net] このスレはいつからまともな人たちをヲチするようになったのですか?
281 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 21:26.net] すいません、テキストファイルの中の .bananaなどの単語(行頭ではなく)の先頭が ドットがあるものだけをgrepで抜き出したいのですが、jp.appleのような単語までひっかかって しまい上手く絞り込めません。 アドバイスをお願いします!!
282 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 21:54.net] >>278 \b?\.\w+? で、どうじゃろ?
283 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 22:44.net] >>279 すいません、なんか上手くいかないです。 ls -laでディレクトリ内の全ファイルを表示して、grepで隠しファイルだけを抽出したかったのですが。
284 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 23:34.net] ls -la | grep ' \.' ではあかんの?
285 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 23:57.net] >>281 行のどこかに"."があれるとヒットしてしまうんです
286 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:28.net] ls -la | grep '^\.' こういうこと?
287 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:28.net] >>282 とはいえ、"."って、ファイル名にしかでてこないよね? >>281 をよーくみる。
288 名前:283 mailto:sage [03/07/13 00:30.net] 間違えた。 ls -1a | grep '^\.' これか ls -la | grep ' \.' これだな。下は余計なものを拾う可能性もあるが。
289 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:31.net] ls -d .* なんてね。
290 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:32.net] あ、正規表現スレだった。すまん。
291 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 02:00.net] ヤハリココハオモッテタトオリバカバッカリダッタナ(プ
292 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 02:57.net] ls -la | awk '$9 ~ /^\./{print $0}' はどうよ。
293 名前:名無しさん@お腹いっぱい。 [03/07/13 11:30.net] >>280 ふつーそういうときは ls つかわず findつかえ。 find ./ -type f -name "\.*" -print
294 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 14:36.net] (())
295 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 11:38.net] >>290 ふつーそういうときは >> つかわず >> つかえ。
296 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 19:04.net] backreferenceを前方参照と訳したのはなぜですか?
297 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 21:19.net] 後方参照としている訳もあるよ。 まぁ、現在の位置よりも前を参照するという意味では 日本語的には前方参照であってると思う。 ようするに「今いる位置より戻って参照」って意味になるんだから。 んでも、意味を考えて訳すなら「戻って参照」とか、どう?
298 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 21:32.net] >>294 ちょっと前にCスレで話題になったんだけど、Cで「前方参照」といった場合の前方って、 ファイルの終端方向を指す。「ひどい訳語だ」ってことで話は終わったんだけど、 正規表現でも混乱が見られるしなんかいい言葉ないもんかねえ。 日本語では時間を表す文脈で「前」にまるで正反対の意味があるからよくないのだと思う。 「以前」だと過去だし「前進」だと未来だし。 あとこれはすれ違いか? そうだよね。すまん。
299 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 21:41.net] >>279 >>281 >>283 >>284 >>285 >>286 >>287 >>289 >>290 みなさま、ありがとうございます。 シングルクォーテーションに空白が使えたり、 アッパーチルダとハット(キャレット?)の区別を知ったりと、 正規表現の難しさを知りました。 今、「テキストデータ料理学」っていう古い本を読んでいるのですが、 オライリーの正規表現本は買ったほうがいいですか? (もう2〜3週間前にオライリーのサイトでカタログを注文したのに、 まだ来ない…)
300 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 22:23.net] おれは初版も新しいのも持ってるけど、自分の知識に自信がないうちは お薦めしない。もちろんあったらあったで便利だけど。 やっぱり、「俺、正規表現バリバリだぜーYAH」状態で買って読んで 目からうろこ落ちまくり感を堪能するのがいいんではないかと。
301 名前:名無しさん@お腹いっぱい。 [03/07/14 23:31.net] >294 するってえと、正規表現的には日本語で前方参照あるいは後方参照と書いてあったら どっちもbackreferenceと思えってわけだぁね。 >295 計算機分野だと「前方」という言葉はforwardの訳語というのがあたりめえだと思ってたから、 正規表現関係だと、「前方参照」がbackreferenceのことだっていうのがわかんなくて 難儀したってわけよ。
302 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 23:33.net] >>297 >>296 は学ぶ意欲を持っているから、今のうちに買っておいて損はないと思う。 むしろ薦める。 オイラリーはハズレが少ないからな。
303 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 23:35.net] >>298 俺はperlから入ったから後方参照が当たり前かと思ってた。 他言語使うようになってから吃驚したってわけよ。
304 名前:298 mailto:sage [03/07/14 23:43.net] perl5の日本語マニュアルで、「前方参照」を "lookahead assertion"の訳語として 使っているやつがあった。 (?=regexp) 長さの無い、前方参照位置指定子。 (?!regexp) 長さの無い、前方参照否定位置指定子。 英語だと (?=pattern) A zero-width positive lookahead assertion. (?!pattern) A zero-width negative lookahead assertion. わけわかんねぇな(w
305 名前:298 mailto:sage [03/07/14 23:48.net] ありゃりゃ? (?<=pattern) A zero-width positive lookbehind assertion. (?<!pattern) A zero-width negative lookbehind assertion. "lookbehind assertion" の訳語って何だ?
306 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 00:32.net] 「俺の背後に立つな」 デューク東郷の格言だろ。
307 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 00:35.net] lookahead 見越し lookbehind 見返り
308 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 01:01.net] 前後不覚だな。
309 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 03:12.net] >>296 >オライリーの正規表現本は買ったほうがいいですか? 持ってなくても覚えられるし、 エディタのサーチとか grep とかで実験しながら 感覚的に慣れるのも悪くないんじゃない? ただし emacs で覚え始めるのはすすめない。 backslash で混乱する。
310 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 07:21.net] >>297 >>299 >>306 ちょっと大きな本屋に行って立ち読みしてみます。 ありがとうございました〜
311 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
312 名前:名無しさん@お腹いっぱい。 mailto:age [03/07/17 13:35.net] >>308 二度と目を覚ますな。
313 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
314 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/20 21:36.net] さげ保守
315 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/27 22:01.net] OOはもうすぐ1.1出るけど、MSWORDよりセキュリティ大丈夫かな? pc2.2ch.net/test/read.cgi/bsoft/1055292975/392
316 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
317 名前:高校生 [03/08/02 17:12.net] boo baa baz っていうテキストが例だとして、sedを用いて、 booまたはbaz、っていう正規表現はどうなるの? rubyやperlならパイプ記号で条件和の表現が出るけど、 同じように書いてもsedに誤解されてしまう。
318 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 17:52.net] >>314 ん? \|使えば良いのでは
319 名前:高校生 mailto:sage [03/08/02 18:06.net] sed 's/boo\|baa/hoge/g' ./hage.txt とかだとやっぱりだめなんすよね。 「boo」とかの単語の括り方がよくわからんのです。
320 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 20:53.net] GNU sed 4.0.7版 ではそれでもできてるけどな。 sed 's/\(boo\|baa\)/hoge/g' これでどう?
321 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 22:07.net] >>317 gsedならできるがsedは食ってくれない。
322 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/03 01:09.net] 単一の正規表現じゃなきゃいかんの? sedと決まってるなら sed -e 's/boo/hoge/g' -e 's/baa/hoge/g' でいいんちゃう? 置換後の文字列と置換前の文字列の片方とで重なりがある場合 どうするかひとしきりモメたりする ↓↓↓ のがお決まりだな。
323 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/03 09:52.net] 単一の正規表現でないと記述が冗長で見た目がキモイ、 っていうのはあると思うよ。 おいらはインストール直後のFreeBSDの環境構築をスクリプトに任せたくて、 結局シェルスクリプトにawkな記述を書いて解決した。 カーネルの再構築にしても、/etc/下の記述にしても、要はテキストの置換なわけで。 本当はrubyがFreeBSDの/usr/bin下にあるようなご時世だったら 楽ができるんだけど、そこら辺は個人的な勉強不足だなぁ。
324 名前:名無しさん@お腹いっぱい。 [03/08/13 19:13.net] {a,b}上の言語Lが 『aaで開始し、かつ、bbを部分列として含む』という条件を満たす語からなるとき Lを表す正規表現ってどうなるの? L=aa(a*b*+bb)* ?
325 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 20:45.net] L=aa(a+b)*bb(a+b)*
326 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 22:05.net] >>321 *+ ???
327 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:05.net] >323 '+'より'|'のほうが普通かな。 L=aa(a|b)*bb(a|b)* 本来的には連接、選択、閉包が表現できればいい。
328 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:08.net] L ::= aA A ::= aB B ::= aB | bC C ::= aB | bD D ::= ε | aD | bD
329 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:34.net] .* 何にでもマッチする最強の正規表現です!
330 名前:名無しさん@お腹いっぱい。 [03/08/13 23:50.net] >>326 ドットが含まれてなかったらマッチしない罠
331 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:53.net] キター
332 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/14 00:13.net] ageてるし、ネタと見た。
333 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/14 23:29.net] >>329 しね!
334 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
335 名前:あぼーん mailto:あぼーん [あぼーん.net] あぼーん
336 名前:名無しさん@お腹いっぱい。 [03/08/28 20:12.net] うまづら。
337 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/02 03:30.net] ほす。
338 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/14 04:27.net] ☆湯
339 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/16 13:49.net] [ruby-list:38393] じゃないけど、[a-z] みたいな文字クラスの表現は、 EBCDIC とかだと「意図した通り」には動かないと思うんだけど、 ASCII か ASCII を包含したキャラクタセットという前提で書くべきものなの?
340 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/16 14:08.net] >>336 [:lower:] とかは使っちゃだめ?
341 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/16 15:34.net] >>337 あ、いや、質問が悪かったですね。 範囲指定する文字クラスはどうあるべき (書くべき) か?っていう話です。 ていうか、 re_format(7) を私の拙い英語力で読んでみたところ、 ASCII コードの並びを前提とするような文字クラスの範囲指定は、 portable じゃないからやらない方が良い、ということのようですね。 というわけで、極力 >>337 さんのみたいな文字クラス指定を使った方が良い、と。
342 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/20 10:41.net] ★
343 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/08 15:50.net] 保守
344 名前:名無しさん@お腹いっぱい。 [03/10/12 16:53.net] vimで"DEL"という文字列が含む行で、"DEL"以下を削除したい場合はどうしたらいいでしょうか?
345 名前:名無しさん@お腹いっぱい。 mailto:sage :s/DEL.*$/ [03/10/12 17:15.net] スレ違い。 Vim
346 名前:6 Part6 http://pc.2ch.net/test/read.cgi/unix/1058706125/ [] [ここ壊れてます]
347 名前:名無しさん@お腹いっぱい。 [03/10/13 01:12.net] :%s/DEL.*//
348 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/13 15:10.net] >>343 サンクス、すみません。
349 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 17:51.net] ☆
350 名前:名無しさん@お腹いっぱい。 [03/10/21 23:12.net] >>343 DELは残したい場合はどうすればいいですか?
351 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/21 23:24.net] :%s/DEL.*/DEL/
352 名前:名無しさん@お腹いっぱい。 [03/11/05 11:20.net] MS-DOSが使われていた頃に、"mifes"と言うエディターが有った。 そのマニュアルに1頁ほどの正規表現の説明があって、自分は最初に、それで 覚えて使い出した。 使い始めの頃は、何回も間違えたけど、少しづつ慣れてきた。 自分の周りを見ても、プログラマを何年もやっていても正規表現を知らない 人は、結構いる。 一旦、覚えてしまうと非常に便利だと思うんだけど。
353 名前:名無しさん@お腹いっぱい。 [03/11/05 17:48.net] 正規表現で俺の存在を抹消してくれ。
354 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/05 19:01.net] s/俺の存在//g;
355 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/05 20:10.net] gsub!(/俺の存在/, "")
356 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/18 18:31.net] 捕手
357 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/19 01:38.net] rー、 」´ ̄`lー) \ T¨L |_/⌒/ `レ ̄`ヽ〈 | i__1 _ゝ_/ ノ L__jイ´_ ) | イ | ノ--、 r'⌒ヽ_ ゝ、___ノ二7 /´ ̄l、_,/}:\ |ーi | l_/ /__ィ::. ゝ~_ィ´:; ,ゝ __〉 { (T´ |1:::. \_>、};;_」 'ー‐┘ ! ` ̄''ァ一 、\ ヽ} ← 保守 〈` ̄ ̄^`¬ノ .::〔 ̄´ 1 ヽ .:::レ ヽ、 |_イー-、_;;j|_:. ゝ、 __,,,... -- |. {―――‐フゝ、 〉 -- ...,,,__ _,, -‐ ´ ,r|__ト, 1ニノ ー'´ ` ‐- ,,_ , ‐ ´ └―'´ `
358 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/19 09:17.net] >>353 それ捕手じゃなくて投手やっ!www
359 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/04 19:24.net] 別のスレからの引用 ps ax |grep '[s]shd' とやると、grep自身の行にヒットしないそうだけど、なぜ? sってメタ文字でもなんでもないのに。
360 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/04 19:30.net] なぜって言われても、自明だが。
361 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/04 19:33.net] grep sshd と何が違うの?
362 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/04 19:35.net] あ、ごめん、わかった(w
363 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/04 19:36.net] grep sshd だと、ps の出力に含まれる "grep sshd" の "sshd" がマッチする。 grep '[s]shd' だと、ps の出力には "grep [s]shd" が含まれるが、 この "[s]shd" は、[s]shd にはマッチしない。よね?わかる?
364 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/04 23:59.net] なるほど。トリックだな。
365 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/05 10:59.net] まあバッドノウハウだとも思うけどナー www.namazu.org/~satoru/misc/bad-knowhow.html
366 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/05 13:26.net] そこまでのものではないと思うけど、 この例だと、頭の中でpsの出力まで加工しちゃうからな(w
367 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/05 20:33.net] grep -v grep でええやん。
368 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/30 00:05.net] muttのaliasで alias keyword Name <mailaddress> みたいなフォーマットで並んでいるファイルを alias keyword <mailaddress> # Name に整形しようと思い, cat alias | sed 's![[:space:]]*alias[[:space:]]*\([^[:space:]]*\)[[:space:]]*\(.*\)[[:space:]]*<\(.*\)>!alias \1 <\3> # \2!' > alias.new としました. 上手く行くんですが, "#" の位置が行ごとにバラバラなのが気持ち悪いです. そのファイルで "#" 以前の文字数が一番長いものを調べ, そこに合わせて その他の行の "#" 以降を持ってくるようにするにはどうすればいいんでしょうか?
369 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/30 00:14.net] sedでやれってか? 漏れはへたれなので、Perlなどを使ってしまうが(w
370 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/30 00:28.net] >>364 2パスでやれば?
371 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/30 09:20.net] 2パス?
372 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/30 16:05.net] >>367 "#" 以前が一番長いのを調べてから、それに合わせて整形し直せば。
373 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/11 21:57.net] >>364 70桁でそろえる場合 sed ':a /.\{70\}\#/!bc; b; :c s/\(.*\)\#\(.*\)$/\1 \#\2/; ta' 亀ですが、こんなんでどうでしょう
374 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/11 22:21.net] 決め打ちでいいなら何の苦労もないわけで。
375 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/14 23:40.net] >>369 反則技。gawk で。sed ではどうやっても出来ないような気が……(_ _;) # sed でできるのか? { a=index($0,"#"); if(a>best) { best=a; } c[FNR]=$0 } END { for(i=0;i<=NR;i++){ x=index(c[i],"#"); if(x && x<best) { for (j=x;j<best;j++) { gsub("#"," #",c[i]); } } print c[i] } }
376 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/15 23:45.net] ( ´∀`)
377 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/03 10:33.net] 保守
378 名前:名無しさん@お腹いっぱい。 [04/02/06 18:23.net] 教えてください。 Windows用のファイルをemacsなんかで開いたとき,最下行に ^Z という符号が表示されることがあります。 これはいったい何でしょうか?
379 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 19:31.net] いわゆるeof
380 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 21:01.net] >>375 ありがとうございます。この符号のあるファイル同士をcatで連結すると,途 中にこの符号が入ってしまいます。この符号をsedでマッチさせて消去したい のですが,どうすればいいでしょうか。 sed '/^$/d' ではダメでした。
381 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 21:09.net] >>376 いわゆるeof
382 名前:名無しさん@お腹いっぱい。 [04/02/06 22:38.net] EOF符号をsedで消去できますか?
383 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/21 22:59.net] grep で使える正規表現を精密に解説したサイトはありますかね? 日本語/英語どっちでもいいのですが。
384 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 00:19.net] www.kt.rim.or.jp/~kbk/regex/regex.html
385 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 00:29.net] レベル低いなー 378に対して出来るとも出来ないとも言えないのか...
386 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 00:58.net] 378=381 ですか?
387 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 02:14.net] >>378 できるよ。普通に s/^Z// とかすればいい。もちろん^ZはEOFの一文字ね。 こんなの試せばすぐわかるだろと思ってたんだが、よく>>376 を読むと、 「正規表現は純なテキストであるべきで特殊記号を混ぜるのはイクナイ」 と感じたんだろうな。まあ気持ちはわかるわ。 最近の正規表現拡張では、文字をコードの数値で表現する文法が 入ってたりする方が普通(例えばperlとか)だもんな。
388 名前:338 mailto:sage [04/02/22 02:24.net] でね、特殊記号の特別なケースがtab。大昔は\tなんて表現なかったさ。 よく画面上の見た目やハードコピーや雑誌からシェルスクリプトを打ち直して、 tabとspaceの違いで動かないなんてことが時々あったんだよ。 あと勝手にシェルスクリプトを整形されて動かなくなるとか。
389 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 02:52.net] >>382 いいえ >>383 ありがトン!
390 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 02:55.net] >>382 381=385 が正解
391 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 16:53.net] >>380 ブックマークにいれますた。
392 名前:名無しさん@お腹いっぱい。 [04/03/27 17:05.net] [\\w$'-] これはどういうことなのでしょう? [\w$'-] ならわかるのですが..
393 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/27 17:09.net] >>388 処理系は何?
394 名前:名無しさん@お腹いっぱい。 [04/03/27 17:20.net] >>389 Rubyです Regexp::compile("\b\d[\d\.]+\d\b|[\w]+|[\\w$'-]+") scanメソッドで英文を分割してます
395 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/27 17:22.net] >>390 ほほう。バグってる悪寒。
396 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/27 17:25.net] Regexp::compile("\\b\\d[\\d\\.,]+\\d\\b") こんなのがあるんですが..
397 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/27 18:30.net] >>392 Ruby で "..." の中で '\' を書くときは、'\' でエスケープする必要があるの。 つまり Regexp::compile("\\w") は /\w/ と同じ。 >>390 のだと '\' のエスケープが足りない部分があるように見える。 たとえば、 "\w" は "w" に、 "\b" は "\010" になっちゃう。 ので「バグってる悪寒」と言いました。
398 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/27 18:53.net] >>393 なるほど、必死に\\と重ねる正規表現について調べてましたよ ありがとう
399 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 01:42.net] perl で質問です。 NOTE note "note" notes 上のような文字列を「book」だけを「note」に置換したいのですが s/\bnote\b/book/g のようにすると、ダブルクォートで囲まれているものも置換されてしまうのですが それを NOTE book "note" notes のようにするにはどう表記すればよいのでしょうか? 詳しい方、教えてください。
400 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 04:15.net] >>395 > NOTE note "note" notes > > 上のような文字列を「book」だけを「note」に置換したいのですが
401 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 10:07.net] >>396 その下の s/\bnote\b/book/g ぐらい読んで多目にみてやれ。 >>395 とはいえ、仕様があいまいすぎ。 'note' はどうする? :note: は? "abc note def" は?
402 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 10:29.net] s/ note / book /g か? >>397 > とはいえ、仕様があいまいすぎ。 んだな。
403 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 12:34.net] >>395 s/(?=[^"])\bnote\b(?=[^"])/book/g; # こんなんで良いわけないよなと思いつつ・・・
404 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/31 02:02.net] >>397 > とはいえ、仕様があいまいすぎ。 すいません、おっしゃるとおりです。 ある単語(note)をある単語(book)に置換したいのですが、 ダブルクォートで囲まれているもの("note")は、その置換からは除外したいのです。 > 'note' はどうする? :note: は? "abc note def" は? したがいまして、これらはとりあえず想定外で構わないので置換してしまっても構いません。 もう少し昨日の例を詳しく書きますと NOTE,note"note"notes-note このようなものでも NOTE,book"note"notes-book のようになってくれるのを期待しています。 ただ、"abc note def" これも想定外で構わないのですが 対応が可能であるのなら、私の勉強の為に教えてくださるとありがたく思います。 >>399 ありがとうございます。 >s/(?=[^"])\bnote\b(?=[^"])/book/g; これを試してみました。 基本的にOKかなと思ったのですが、行頭、行末では置換の対象となってくれませんでした。
405 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/31 02:52.net] >>400 補足です。 ここでいう単語とは \w+ で表せる範囲のもので、 アルファベット大文字、小文字も含めて完全に単語の 先頭から末尾までが一致するものです。
406 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/31 07:45.net] もっと簡単にできるかもしれないけど、 s/(^|(?<=[^\w"]))note\b|\bnote($|(?=[^\w"]))/book/g; とかは? > ただ、"abc note def" これも想定外で構わないのですが 後ろから数えた"の個数が奇数ならマッチしないようにして、 $b =~ s/\bnote\b(?=([^"]*"[^"]*")*[^"]*$)/book/g; とすれば、"のマッチングが保証できる範囲ではなんとかなるかも。 前からの"の個数でマッチさせようとしたら、 可変長のlook-behindは実装してないらしい。(perl 5.8)
407 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/31 14:53.net] s/"note"/hogehoge/g s/note/book/g s/hogehoge/"note"/g おれならこうしちゃうな。 考えんのめんどい。
408 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/01 01:10.net] >>402 ありがとうございました。 たいへん勉強になりました。
409 名前:名無しさん@お腹いっぱい。 [04/04/07 15:07.net] 質問させてください。 &にはマッチして欲しいのですが、&にはマッチして欲しくないのです。 どのように記述すればよいのでしょう。 お願いします。
410 名前:405 [04/04/07 15:09.net] &にはマッチ &amp;にはマッチしない でした。すいません。
411 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/07 15:26.net] >>405 Perl5 でいい?
412 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/07 15:32.net] >>405 /&(?!amp;)/
413 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/11 13:22.net] 正規表現のおすすめ書って何がありますか?
414 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/11 14:13.net] オライリーのやつ。
415 名前:名無しさん@そうだ選挙に行こう [04/07/11 16:49.net] ワイルドカード(DOS)の *.txt って、正規表現だとどう書くの?
416 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/11 20:35.net] {(([0-9a-zA-Z]){0,})\.txt}とか半端に返してみるテスト
417 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/11 20:46.net] [^\\/]+\.[Tt][Xx][Tx]\z とか (ry
418 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/11 22:41.net] foo と bar 両方含む行をマッチさせたいんだけど、 awkでいうところの and演算子 % awk /foo/&&/bar/ が使える、windowsで動くgrepツールなんか教えてください。 #絞込み再検索のないGUIなgrepツールなんかイラネ
419 名前:名無しさん@お腹いっぱい。 [04/07/11 23:39.net] >>412 ,413 . 記号は \ でエスケープになるのですね。.*\.txt でマッチはしました。 助かりました、ありがとうです。
420 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/12 22:46.net] >>414 FIND "foo" | FIND "bar" みたいのじゃ駄目?
421 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/14 00:51.net] >>414 |が使えるツールなら、/foo.*bar|bar.*foo/とかで近似できるんじゃないの。 CygwinのGNU grepで試してみた。 > cat foobar.txt foo bar foo foo foo bar bar bar bar foo > grep -n "foo.*bar\|bar.*foo" foobar.txt 4:foo bar 6:bar foo >
422 名前:414 mailto:sage [04/07/23 03:17.net] なるほど、andをorに展開すればいいのか。 しかし fooかつbarかつbazを検索、つーばあい展開すんのめんどくさいなぁ。 windowsのGUIなgrepツールは、サブフォルダも検索、とかできて 結構便利なのも歩けど、パイプとかorが使えなかったりしてイマイチ。 結局cygwinでawk使ってるけど、これもいまひとつメンドクサイ。 2chのログを検索してるだけなんだが_| ̄|○
423 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/29 01:12.net] >>418 xyzzy の ggrep 辺りがいいんじゃない?
424 名前:名無しさん@お腹いっぱい。 [04/07/30 00:18.net] Windows の AWKじゃだめですか?
425 名前:名無しさん@お腹いっぱい。 [04/08/03 09:48.net] Perloしかないべ
426 名前:名無しさん@お腹いっぱい。 [04/08/06 22:51.net] #から行末までをあらわす正規表現ってどうやればいいんでしょうか。
427 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/06 23:22.net] #.*$
428 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/12 15:32.net] #[^#]*$
429 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 00:25.net] 質問があります。 サクラエディタ(正規表現ライブラリ:BREGEXP.DLL)でCソース中のhogehogeをgrepしてた 場合に、コメント化(//)されている行だけは検索結果に表示したくないんですが、 どのような正規表現で検索すればいいでしょうか?
430 名前:名無しさん@お腹いっぱい。 [04/08/24 01:48.net] あげ
431 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 01:56.net] >>425 そのエディタよく知らないんだけど、Unix で動くの?
432 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 13:36.net] スレタイだけ見て、板を確認してないんだと思われ。
433 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 13:43.net] それを言うと、このスレ自体板違いな気もしなくはないが。ム板のだけで十分やん。
434 名前:425 [04/08/24 21:24.net] UNIX板って知っていて質問をしましたが。 とりあえず、ム板に逝ってみます。
435 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 21:38.net] >>430 Unix 用のソフトなの?
436 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 22:51.net] >>431 is not UNIX
437 名前:名無しさん@お腹いっぱい。 [04/08/24 23:41.net] 多分エディタの種類はどうでもよくて、 /\/\*.*\*\/ とか、そんな答えを期待していたと思われ
438 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/05 06:33.net] ム板の正規表現もとんと書き込みないから、テストしてみたら 書き込めた。ここもどうなんだか、書き込んでみる。
439 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/06 18:18.net] ハハ*.*ハハ
440 名前:名無しさん@お腹いっぱい。 [04/09/07 16:51.net] 指定文字列A 何か 指定文字列B という何かにヒットさせるにはどういう正規表現にすればいいですか?
441 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 17:18.net] >>436 素で答えると「文字列A.*文字列B」だけど?そういう話? もちろん文字列ABに特殊記号があったらどうするかとか、 .*は最長マッチでいいのとか、いろいろ細かい話はあるけど。
442 名前:436 [04/09/07 17:21.net] 自分で、 (文字列A).*{2,15}(文字列B) とかでやってみたんですが、 マッチするのが、 指定文字列A 何か 指定文字列B がマッチしてしまうので… 何か の部分だけを抽出しようと思ってます。
443 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 17:55.net] 後から取り出したい部分を()で囲む。(.*{2,15})みたいに。
444 名前:436 [04/09/08 01:37.net] >>439 さんの方法でも結果が変わりませんでした… 処理系が違うからかな? とりあえず諦めて、 指定文字列A 何か 指定文字列B をマッチさせて、指定文字列A+1文字目から 何か の文字数だけ切り取ることにします。 ありがとうございました。
445 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/08 02:28.net] >>440 で、その処理系が何かを晒すつもりは毛頭無いわけですね?
446 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/08 10:13.net] >>441 ハゲには無理
447 名前:436 mailto:sage [04/09/08 11:58.net] 何度もすいません。 C#です… 改めてやってみると>>439 さんの方法でいけました。 group[1]に入ってたんですね。全体しか見てませんでした。 板違いにお騒がせしました。
448 名前:名無しさん@お腹いっぱい。 [04/09/10 00:33.net] Perlの場合、 $_ = "いっぱい"; s/い/お/; # おっぱい s/い/お/g; # おっぱお ということでおk?
449 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 02:41.net] _ ∩ ( ゚∀゚)彡 おっぱい!おっぱお! ⊂彡
450 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 15:00:12.net] 小学生のころ流行ったネタ
451 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/27 06:28:21.net] 性器表現
452 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/27 09:23:16.net] ワロテモータ
453 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/27 11:29:59.net] さんざん概出なのに・・・
454 名前: mailto:sage [04/10/13 14:29:29.net]
455 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/13 14:50:43.net] .*
456 名前:ウサチャソ mailto:sage bill@microsoft.com [04/10/29 21:49:31.net] ↑アナルは性器じゃねーよな、とか思ってよく見ると、ドット米。 イボ痔か?
457 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/30 20:30:37.net] >>452 拭き忘れたウンチだよ。きっと!
458 名前:名無しさん@お腹いっぱい。 [04/11/10 15:37:24.net] regexp
459 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/26 21:14:34.net] rege*p
460 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/16 23:14:21.net] 正規表現で複数の単語の中に「/」があるときにヒットさせたいんですが echo "hoge / hoge" | grep "\</\>" でだめでした・・。だれか修正をお願いしますorz
461 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/16 23:50:35.net] >>456 条件をもっと明確に定義しろ。 マルチすんな。
462 名前:456 mailto:sage [04/12/17 00:16:01.net] >>457 複数の単語の中で、"/"のみで構成される単語が存在する場合のみ ヒットさせたいのです つまり a b c / d 上記ようなときで下記のどの事象にもヒットさせたくはないのです // /a a/ a/a
463 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 01:22:18.net] >>456 pc5.2ch.net/test/read.cgi/linux/1101654885/957 とこっちと、どっちで続けるのかね。
464 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:17:13.net] まことに勝手ながらこちらで続けさせてください 質問を改めます やりたいことは ----------------------- 1) echo "/" | grep ...... 2) echo "/ a b" | grep ...... 3) echo "a b /" | grep ...... 4) echo "/a / b/" | grep ...... ----------------------- 上ですべてマッチさせて 以下はすべてはじくようにしたいのです ----------------------- 5) echo "//" | grep ...... 6) echo "// /// ////" | grep ...... 7) echo "/a b/ /c/" | grep ...... ----------------------- 上と下の違いは、前後にスペースを含む" / "が存在するか否かです よって以下のように考えましたが、ヒットしませんでした echo "a / b"|grep "\</\>" echo "a / b"|grep "\<\/\>" どなたか修正をおねがいしますorz
465 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:22:35.net] >>460 grep と言ってもいろいろあるんだが どの OS のどの grep よ。
466 名前:456 mailto:sage [04/12/17 11:23:16.net] ↑修正します 修正前)上と下の違いは、前後にスペースを含む" / "が存在するか否かです 修正後)上と下の違いは、単語 / が存在するか否かです
467 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:27:31.net] >>460 > 上と下の違いは、前後にスペースを含む" / "が存在するか否かです 1) と 2) には存在しないようだが。
468 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:28:10.net] >>462 「単語」とは?
469 名前:名無しさん@お腹いっぱい。 [04/12/18 00:00:37.net] ブラケットの中でピリオドを入れる時ってメタキャラクタとして扱われますか? [\w.] と [\w\.] が同じ動きにになるみたいなんですけど・・・。 ちなみに、パールです。
470 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/18 02:48:16.net] >>465 「みたい」じゃなくてテストコードで示してよ。
471 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/18 08:58:34.net] どの言語の正規表現がどんな有限オートマトン使ってるという情報って どこかにありますかねぇ。正規表現コンバータ作ろうかと思ってるのですが。。 NFA、DFAの違いぐらいは詳説正規表現の本でわかるのですが、実装ともなると。 オートマトンの変換に関してはコンパイラの本を参考にしてますが、 やはりかなりつらいものがありますね。たんに字句解析して作った方がいいのかなぁ。
472 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/18 09:16:42.net] 普通にNFA+DFAでいいじゃん
473 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 02:13:26.net] オブジェクト指向正規表現の仕様策定はまだですか?
474 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 14:44:45.net] >>469 聞いたことないな。 何それ?
475 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 19:26:19.net] >>469 まかせた。
476 名前:名無しさん@お腹いっぱい。 [04/12/22 19:35:55.net] お前らWinの.NETなんだが正規表現の質問をさせてくれ。 RegularExpressions.Regexで下の文字列を検索して<TD>から</TD>に分けたい。 string strHtml = "<TD>a</TD><TD>b</TD><TD>c</TD>" Regex regex = Regex("<TD>.*</TD>"); MatchCollection matchcollection = regex.Matches(strHtml); だと最長一致で "<TD>a</TD><TD>b</TD><TD>c</TD>"の1つのコレクション取得。 Regex regex = Regex("<TD>.*?</TD>"); だとやりたい "<TD>a</TD>", "<TD>b</TD>","<TD>c</TD>"の3つのコレクションが取得できる。 .*? の意味をアフォにも分かるように説明してくれ。 .*(任意の0文字以上)が?(あるかないか)だろ。 なんで思った通りに3つのコレクションが取得できるの?
477 名前:472 [04/12/22 19:38:29.net] *? つーのは最短一致という便利なキーワードなのか。 つまらん質問失礼しますた。
478 名前:名無しさん@お腹いっぱい。 [05/01/07 22:21:40.net] 下がってるので、どれ一つ、とんちでも。 rubyでは /aa+??/ =~ "a" => 0 emacsでは "aa+??" =~ "a" => nil さて、こうなってしまうのは、各々がどのようなオートマトンで 解釈されているからでしょうか。
479 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/08 07:36:53.net] emacsって最短マッチあんの?
480 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/08 11:15:48.net] ありましゅよー ttp://www.cs.huji.ac.il/support/emacs/elisp-help/elisp-manref/elisp_34.html でも、{m,n}? の最短マッチはないみたい…。
481 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/11 11:11:46.net] 最短マッチに対応した grep ってある?
482 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/11 13:31:51.net] >>477 grep が最短マッチに対応してるかどうかが問題になるケースってある?
483 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/30 22:46:31 .net] [^ま]*まってかくのめんどくさい
484 名前:名無しさん@お腹いっぱい。 [05/02/26 05:47:57 .net] あげ
485 名前:名無しさん@お腹いっぱい。 [2005/03/30(水) 02:33:49 .net] up
486 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/04/19(火) 17:08:07 .net] 正規表現の実装っていろいろあることにやっと気づいた漏れorz
487 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/14(土) 15:12:25 .net] ほしゅ
488 名前:名無しさん@お腹いっぱい。 [2005/05/16(月) 16:51:45 .net] abc xyzをaxbyczにしたいのですが
489 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 17:05:02 .net] s/abc xyz/axbycz/g
490 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 19:33:57 .net] ワロタ
491 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 19:34:25 .net] 保守
492 名前:名無しさん@お腹いっぱい。 [2005/05/17(火) 22:45:20 .net] >>484 echo abc xyz |sed -e "s/^/%/; :ll; s/[%]\(.\)\(.*\) \(.\)\(.*\)/\1\3%\2 \4/; tll; s/%//;"
493 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/18(水) 00:13:40 .net] うひょー
494 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/05/28(土) 03:19:18 .net] うに厨として、% をめぐる動きに溜息出た…真剣にありがと 何重にも目が覚めた
495 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/28(土) 05:32:41 .net] abc xyz でも abcdefg ABCDEFG でもできるね。すげーや。
496 名前: ◆2fmGY.thDg mailto:sage [2005/06/02(木) 22:17:25 .net] a
497 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/04(土) 23:07:23 .net] ('A`)
498 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/19(日) 02:53:08 .net] Onigurumaを使っているんですが、 あるテキストデータがあります。 ----- ここから END 注釈 ○○○ 注意 △△△ 補足 ◎◎◎ TITLE ----- ここまで という部分の、ENDの後の空白行からTITLEの前の空白行の部分(間の行)を削除して、 ENDとTITLEの間は1行だけの空白行にしたいです。 「END\s^[0-9a-zA-Z。-゜ぁ-んァ-ヶ亜-?]*\sTITLE」を指定してもマッチしないんですが、 これは私の正規表現の式が間違えているんでしょうか? (複数行を1度に選択する方法を間違えている???)
499 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/19(日) 03:13:31 .net] >>494 つーか、正規表現だけ見せられても判断できないと思うんだけど。 改行処理や文字コードのオプション設定はどうしてるかとかいろいろ情報が足りない。
500 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/07/13(水) 09:25:56 .net] 素直に、 ~s/END(\s*.*?\s*)TITLE/END\n\nTITLE/sg; じゃダメ?
501 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/13(水) 13:15:24 .net] >>496 Oniguruma の質問なわけだが?
502 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/07/13(水) 17:54:26 .net] …とは思ったのだが、Perl 互換らしーから、いーかなとw てか、見つかるのむちゃくちゃ早いなww 事後ながら、oniguruma (ライブラリ)取りに行った
503 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/13(水) 19:58:46 .net] >>498 > 見つかるのむちゃくちゃ早いなww どういうこと?
504 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/17(日) 23:17:41 .net] >494 > 「END\s^[0-9a-zA-Z。-゜ぁ-んァ-ヶ亜-?]*\sTITLE」を指定してもマッチしないんですが、 > これは私の正規表現の式が間違えているんでしょうか? > (複数行を1度に選択する方法を間違えている???) これのどこが、複数行を一度に選択しているの?
505 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/19(火) 19:22:13 .net] >>500 ONIG_OPTION_MULTILINE (や REG_NEWLINE や RE_OPTION_MULTILINE など) をセット しているかどうかで複数行選択できるかどうか変わるので、 そのへんを晒せばもうちょっと状況がわかると思うのだが、 元質問者はもう既にどっかいっちゃったのだろうな。
506 名前:名無しさん@お腹いっぱい。 [2005/09/21(水) 20:57:28 .net] 正規表現で ○○ か ○○の場合と言うのはどう表現するのでしょうか? Cで言う、 || のようなものです。
507 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 21:07:45 .net] テンプレに何もないんだなこのスレ。 このあたりで調べろ www.kt.
508 名前:rim.or.jp/%7Ekbk/regex/regex.html [] [ここ壊れてます]
509 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 21:18:44 .net] \(>∀<\) キャー
510 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 21:58:13 .net] (;`∇´))))))))))) \(>∀<\) キャー
511 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 22:48:45 .net] 俺ならこう→「\(○{2}\) か \1の場合」
512 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 23:46:20 .net] 何気に正規表現本もラッシュだな。
513 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/22(木) 00:19:11 .net] \([^ ]∀[^ ]*\) AAみたいな正規表現を作りたいが難しい。
514 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/22(木) 02:52:41 .net] つくれて
515 名前:驍竄! [] [ここ壊れてます]
516 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/23(金) 23:15:15 .net] ∀ がメタキャラになってくれると楽しいかも
517 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/26(月) 20:32:51 .net] дも
518 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/28(水) 14:54:06 .net] ネタキャラ
519 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 01:04:17 .net] 純粋に興味の問題なんだけど、 「ある文字集合の要素が各1回ずつしか出現しない」という文字列は 正規表現で表現できる? 例えばA, B, Cの文字からなる言語を考えたとすると、 ABC ACB BAC BCA CAB CBAの6つの文字列にマッチする表現っす。
520 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 01:08:23 .net] 文字集合の濃度が有限なら 単に | でつなげばいいな。
521 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 02:30:43 .net] いろは歌とか"a quick brown fox..."みたいなのにマッチさせる正規表現、 って書けば説明が早かったかもですね。 >>514 ひらがなの場合で47!個、アルファベットの場合で26!個の文字列を |でつなぐってことになると思うんですが、やはりこれしか方法ないんですかね。 正規表現の長さは… アルファベットの場合でも約1京テラバイトか… orz
522 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 09:42:38 .net] >>513 [^A]*A[^A]* ではどうよ
523 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 09:53:24 .net] >>516 BBA にもマッチしちゃうんでは。
524 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 09:57:44 .net] >>515 > "a quick brown fox..."みたいなのに o 2回出てるよ。 実用を考えたら正規表現以外でやった方がいいな。
525 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 19:50:27 .net] いろは歌って内容も傑作だよな。
526 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 21:53:37 .net] > o 2回出てるよ。 おお、32年生きてて初めて気が付いたっす。漏れの目はfusianasanさんだ… orz > 実用を考えたら正規表現以外でやった方がいいな。 そうことになっちゃいますかね。みなさんレスどうもでした。
527 名前:名無しさん@お腹いっぱい。 [2005/12/11(日) 08:09:16 .net] Windowsで正規表現にマッチする文字列のみ(行全体じゃなく)を表示・保存するにはどうすればいいのでしょうか? xyzzyとかのエディタのgrepでやろうとしたのですが、検索してもよくわかりません。 Rubyとかスクリプト言語を使わないと無理でしょうか?
528 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/11(日) 08:13:57 .net] 上すいません。書きこむスレ間違えました。(プログラム板の正規表現スレに書きこんだつもりでした。)
529 名前:名無しさん@お腹いっぱい。 [2005/12/11(日) 11:19:25 .net] ちょうど一回出るんなら何かの順序でソートして文字列が完全一致することをチェックかなあ
530 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 11:16:33 .net] エディターの正規表現で置き換えをしたいんですが・・・ 1、2、3、・・・という連番を (1) (2) (3)というふうに置き換えたいのですが どうしたらよいでしょうか。
531 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 11:57:28 .net] まずは(ry
532 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 12:39:56 .net] 置換元:[1-9] 置換先:(\0) で、できるかもよ。
533 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 17:30:57 .net] >>526 だめでした。
534 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 19:50:58 .net] 置換元:[1-9][0-9]* 置換先:\(\0\) こんな風にすればできるのかな? どんな風に駄目だったかわからないけれど。
535 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 20:02:16 .net] >>528 それもやってみましたが、検索はされるのですが、 置き換えが出来ません。(0)となってしまいます。 前回のは(となってしまいます。 エディターだから駄目なのでしょうか。
536 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 20:09:51 .net] \0のところを、 \1 $1 にしても同じかな?
537 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 20:13:18 .net] >>530 ($1)となってしまいます。
538 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 20:17:25 .net] そのエディタの正規表現がreference(\1とか$1とか)をサポートしてないに1票。
539 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 21:27:04 .net] !(^^)!ピンポーンです。 ヘルプを見ていたら、referenceはサポートしていないと出ていました。 他のエディターを探すか、どうしたらいいでしょうか。
540 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 23:17:07 .net] 続きです 結局QXエディタをダウンロードして使いました。 びっくりしたのはWindows上では 正規表現というのは全然一般的ではないんですね。 勉強しようにも正規表現サポート自体が脆弱だったんですね。
541 名前: 【大凶】 3回目 mailto:sage [2006/01/01(日) 23:32:29 .net] ググればなんぼでも出てきます。少し自分で考えなはれ。
542 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/03(火) 22:49:27 .net] まあやることがハッキリ決まってるんなら、 (念の為)対象ファイルのカレントディレクトリのDOS窓を開いてsed、だな。
543 名前:名無しさん@お腹いっぱい。 [2006/01/07(土) 07:00:27 .net] {aaa}[bbb}{ccc} という文字列から、aaa bbb cccをそれぞれマッチさせてとりだしたいので、 /¥{(.*)¥}¥{(.*)¥}¥{(.*)¥}/ としていましたが、 とりだしたい文字列のなかに、さらに{}がはいっていることがあることが わかりました。 {aaa}[b{b}b}{ccc} とか。 それぞれaaa b{b}b cccというかたちでとりだしたいのですが、どうしたものでしょうか。
544 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 10:07:50 .net] >>537 sedはそのままでok
545 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 14:56:41 .net] グループ化用のカッコにエスケープが必要だからsed「では」ダメじゃないの? Perlならエスケープ不要なので大丈夫。 ところで>>537 はテクニシャンだな。 navi2chで円マーク(¥じゃないほう)を表示させやがって…
546 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 15:36:35 .net] >>539 ヒント:}{
547 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 15:46:46 .net] いや、それは分かってるつもりだけど。 sedだと例えば{(aaa)}{(bbb)}{(ccc)}にマッチしちゃいますよってこと。
548 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 17:31:15 .net] >>541 じゃあ不必要な{}()を最初にスペースに変換してからマッチさせたら
549 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 18:58:38 .net] そんな必要ない。sedでも>>537 のカッコをすべてエスケープすれば良い。 >>538 の「sedは」というのが余分だっただけ。
550 名前:名無しさん@お腹いっぱい。 [2006/01/12(木) 05:55:00 .net] 郵便番号をPHPで「1234567」から「123-4567」へ整形する正規表現を教えて下さい。
551 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 11:06:51 .net] >>544 【PHP】質問スレッドpart32【php】 pc8.2ch.net/test/read.cgi/php/1136276300/
552 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 16:59:36 .net] すいません。 -------------------------------- #hogehoge fugafuga 1 -------------------------------- という風に行頭が#じゃないというのを正規表現で取得したいのですが 「ではない」というのが分かりません。 bashを用いております。 以上 ご助力をお願いいたします。
553 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 20:50:59 .net] >>546 grep -v '^#'
554 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 21:08:39 .net] >>546 grep '^[^#]'
555 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 21:29:57 .net] いつも思うけど、 [^#] 形式だと文字が存在してないときも除外してしまうので 面倒なことあるよね。 ディレクトリリストから . .. を除外しようと [^.][^.].* を使って一文字のファイル見逃すとか。
556 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 21:47:30 .net] >>549 その方が便利なこともある。
557 名前:544 mailto:sage [2006/01/16(月) 17:54:29 .net] ご教授ありがとうございます。 本当に助かりましたっ
558 名前:名無しさん@お腹いっぱい。 [2006/01/22(日) 02:37:32 .net] 正規表現の正規表現ってどうかきますか? ある値が正規表現の構文に沿っているかどうかを調べたいとき。
559 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 02:48:16 .net] 入れ子があるから正規表現にはならない。 BNFを書けば3型文法に属さないこと分かるでしょ。
560 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:22:53 .net] いきなりすんません 2ちゃんねるブラウザ Jane Doe Style で正規表現検索を使おうとしたけど、書き方がいまいち分かりません。 F900i という文字列だけを検索して F900is や F900iT はヒットさせないようにするには、どう書けば良いですか ぐぐってもいまいちわからないので。。。。
561 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:25:48 .net] 板違い。
562 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:32:56 .net] スマンです。でもスレタイ検索してもほかに質問できそうな場所なかったんけどだめですか。 UNIX 085 正規表現 (553) プログラム 408 正規表現part2 (102) プログラマー 283 【Regular】正規表現【Expression】 (36)
563 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:36:10 .net] 板違い。
564 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:49:12 .net] 逝
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 13:16:13 .net] >>554 Jane Doe Style とやらがどんな正規表現エンジンを使っているかにも 激しく依存する話なので、 まずはそのソフトのスレで聞いてみた方が良いと思う。
566 名前:名無しさん@お腹いっぱい。 [2006/04/15(土) 16:30:37 .net] (・∀・)
567 名前:名無しさん@お腹いっぱい。 [2006/04/18(火) 03:51:57 .net] onigruma... 気になる。名前が怖い。
568 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/18(火) 09:54:32 .net] nekoguruma だったら弱そうだしな
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/02(火) 22:56:16 .net] >>562 いろいろ運べそうじゃないか
570 名前:名無しさん@お腹いっぱい。 [2006/05/29(月) 20:29:06 .net] 正規表現厨には grep --color
571 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/31(水) 19:33:06 .net] 勉強ついでに554を考えてみた。精度に難がありそうですが、以下でどうだろう? [^A-Zz-z0-9]*F900i[^A-Za-z0-9]*
572 名前:成瀬 ◆NBGqNARUSE mailto:sage [2006/06/16(金) 03:35:29 .net] >>565 最低限試そう。"F900iS"=~/[^A-Zz-z0-9]*F900i[^A-Za-z0-9]*/ はマッチする。 ヒント: \W \b 否定先読み
573 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/07/25(火) 12:40:49 .net] ... Doll ←ここから \=\-\--\-``--`\=`-==\ \=-\=-\``\==`=`--`-=- Egg -=-\-=-\-\=-=--\=-=-=\ -=-\-=-=\=-=\=-=-\-=\- ←ここまで Fruits ... のときDoll〜Eggの項目まで抽出するにはどうしたらいいですか? /Doll/,/Fruits/ でおおまかには抽出できるけどもっと正確に抽出したいのです
574 名前:名無しさん@お腹いっぱい。 [2006/08/09(水) 21:11:53 .net] 『詳説 正規表現 第3版』 が今月発売されるね。 邦訳版の出版は知らんけど。
575 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/10(木) 13:32:24 .net] 情報サンクス。 けど、洋書なら原書のタイトル表記でよろしく。 早とちりして必死で oreilly.co.jp と amazon.co.jp 探しちゃったよー。(←あほ)
576 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/10(木) 21:53:00 .net] >>569 www.oreilly.com/catalog/regex3/index.html わざわざ、邦訳版の出版は知らんって書いたのになw
577 名前:名無しさん@お腹いっぱい。 [2006/08/18(金) 16:48:08 .net] oraclesqlpuzzle.hp.infoseek.co.jp/regex/index.html 正規表現の問題集らしい
578 名前:名無しさん@お腹いっぱい。 [2006/08/18(金) 17:01:57 .net] >>568 作者宣伝乙、 というのは冗談で、情報ありがと。 日本語版はいつ出るんだろ。
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/23(水) 13:58:51 .net] 立ち読みとか読んだうちに入らんと思われた。
580 名前:名無しさん@お腹いっぱい。 [2006/08/23(水) 17:31:35 .net] >>177 oraclesqlpuzzle.hp.infoseek.co.jp/regex/regex-4-10.html こんなのもあるみたいやね
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/05(木) 15:46:12 .net] age
582 名前:名無しさん@お腹いっぱい。 [2006/10/16(月) 10:51:27 .net] ageとくか
583 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 01:00:23 .net] 質問させてください。 正規表現を用いたgrepをするときに、 文字列"foo"を含まない全ての行にマッチさせるためには どのように書けばよいのでしょうか。
584 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 01:13:12 .net] -v
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 08:26:14 .net] man に書いてあるよ。
586 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 08:26:50 .net] -v オプションを使わずに、正規表現上で「文字列"foo"を含まない」を表す方法を 聞いているんじゃないだろうか?
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 09:48:51 .net] (?!foo)
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 11:12:35 .net] >>581 今はgrepでの話をしてんだろ。
589 名前:名無しさん@お腹いっぱい。 [2006/10/17(火) 13:02:02 .net] >>577 否定先読み
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 13:37:52 .net] >>583 正規表現でできるものか! 先読み、後読み共に否定は貧弱
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 18:14:48 .net] 「一致しない」はあらゆる箇所にマッチするからね 行単位の処理とは基本的に相容れないし 正規表現でなく、-vのようなメタレベルで対処するのが正解 sedとかでもいいな
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 19:17:42 .net] >>585 なんで、.*?(?!xxx) を、xxxが一切含まない行、と解釈してくれないんですかね?
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 19:55:43 .net] 論理的に考えてみればわかるよ
594 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/18(水) 09:59:12 .net] >>587 欲張りマッチだから、xxxが見つかった段階で一文字戻ってマッチにしちゃう?
595 名前:名無しさん@お腹いっぱい。 [2006/10/18(水) 11:10:22 .net] >>586 解釈するわけがない
596 名前:名無しさん@お腹いっぱい。 [2006/10/20(金) 10:45:16 .net] ^(?!.*foo) でできるだろ pc8.2ch.net/test/read.cgi/tech/1156413899/l100 の1のサイトをよく読め
597 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 10:00:30 .net] 正規表現でできることの仕様ってずっとこのままなんですかね。 括弧の対を考慮した表現とかって簡単にならないかな。
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 11:17:38 .net] 処理系ごとに拡張してあったりするじゃん。
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 11:28:08 .net] hp-uxのgrep糞だなw \< \>が使えん。
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 12:07:18 .net] grepツールで、htmlのコメント内を検索対象からはずしてgrepできるツールありますか? コメントで死ぬほど引っかかって苦労してます。 複数行コメント中の真ん中ぐらいの行に引っかかっても、先頭に<!--がないから 普通のgrepツールだときびしいです。
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 12:13:02 .net] sedしかないだろ。
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 12:24:01 .net] -- の対応まで見ようとするとつらそうだ。
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 21:37:54 .net] 複数行になると途端にわけわからんくなるな・・・。
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 05:24:59 .net] 改行位置を変換する前処理をしてからやるとか
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 11:38:24 .net] コメントを s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g で取り除いてからgrepすればいいんじゃね?
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 14:20:22 .net] マルチで済まない。 同じ文字が3文字連続していたら表示したいのだが
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 15:02:08 .net] >>599 >s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g この部分はsed? だったら、その後もgrepなんかせずに、sedだけで完結すればいいじゃん。 awkでも同じく。
608 名前:<sage> [2006/11/10(金) 19:30:45 .net] 教えて下さい。 ダブルクオートで囲まれていない、コンマだけを置き換えたいのですが、 正規表現では、どうあらわせばいいのでしょうか? 例: "aaa, bbb" xxxx, "ccc, ddd" yyyyyy xxxx, <- このコンマを −> xxxx; とセミコロンにしたいです。 よろ
609 名前:名無しさん@お腹いっぱい。 [2006/11/13(月) 23:01:55 .net] >>602 pc8.2ch.net/test/read.cgi/tech/1156413899/l100 のリンク先嫁
610 名前:<sage> [2006/11/14(火) 15:35:11 .net] >> 603 そのページのどこを読めと?
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/22(水) 14:36:47 .net] >>604 ほぼ全部 雑魚には無理な正規表現ってこった
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/22(水) 20:49:29 .net] 氏ね
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/26(日) 13:47:54 .net] >>602 ◆関連サイト 正規表現メモ www.kt.rim.or.jp/~kbk/regex/regex.html Perl正規表現雑技 www.din.or.jp/~ohzaki/regex.htm Regular Expression(Riue ちゃんの正規表現講座) www.sixnine.net/regexp/ 正規表現パズル oraclesqlpuzzle.hp.infoseek.co.jp/regex/ 詳説 正規表現 www.oreilly.co.jp/books/4873111307/ 正規表現プログラミングFAQ capslockabcjp.kitunebi.com/faq.html これだけ読めば解決できるが 池沼には無理
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 14:18:49 .net] アルファベットの文字で構成されるが、「d」は入らない、を [a-ce-z]以外の書き方で表現する方法はないですか? もちろん↓はエラーだけど、こんな漢字で書ければいいのだけれど。 [a-z][^c]
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 19:22:18 .net] a|b|c|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 22:02:59 .net] >>608 javaならできる
617 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 22:08:51 .net] d|i|g|i|t|a|l
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/05(火) 09:35:00 .net] >>610 どうやるんだべさ?
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 02:45:07 .net] >>612 [[a-z]&&[^d]] こんな感じだったと思う。
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 09:44:34 .net] >>613 うぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ〜、すげぇ〜。できました! javaだとこんなのができるのか! もちろん正規表現標準じゃないので、perlとか秀丸正規表現ではできないかぁ・・・ javaならではの裏技って他に何かあるんですかね?
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 12:20:30 .net] >>614 うぉ++
622 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 12:23:51 .net] タイプ数増えてるのは問題ないのかw
623 名前:615 mailto:sage [2006/12/06(水) 12:51:07 .net] >>614 わざわざjavaで試した行動力に感服 強欲マッチといわれる615もためしてみるといい
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 13:11:31 .net] java使う人ならタイプ数が増えることが問なさそう
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 14:12:54 .net] >>615 うぉ+でいいんじゃないの?なんか違うの?
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 17:58:50 .net] (+_+;)
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/07(木) 02:56:32 .net] >>619 違うよ。++が付いたほうはバックトラックしない。 Perlの (?> ...) と同じ。
628 名前:名無しさん@お腹いっぱい。 mailto:saga [2006/12/16(土) 17:28:28 .net] 1〜1000 までの数字から始まって最後が C] で終わる正規表現を教えて下さい m(_ _)m
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/16(土) 17:45:19 .net] ^[0-9]\{1,4\}[^0-9]*C]$ かな?
630 名前:名無しさん@お腹いっぱい。 mailto:saga [2006/12/16(土) 17:55:45 .net] >>623 駄目でしたorz 正規表現の勉強してきます。 有難うございましたm(_ _)m
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/16(土) 19:58:43 .net] ^([1-9][0-9]\{0,2\}|1000)[^0-9]*C]$ こうか?
632 名前:名無しさん@お腹いっぱい。 [2006/12/17(日) 00:31:38 .net] タイトル:文字列 の文字列の部分だけを取り出したいのですが、 どのような正規表現にすれば良いのでしょうか? よろしければ、ご教授を願います。
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/17(日) 00:34:12 .net] いろいろ出ているようだけど [0-9].*C] ではダメな理由がわからない
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/17(日) 00:52:14 .net] >>626 文..
635 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/17(日) 07:34:54 .net] >>627 全然ダメ 0000C がヒットする
636 名前:名無しさん@お腹いっぱい。 [2006/12/28(木) 11:54:55 .net] 初歩な質問ですみませんが [0-9a-zA-Z]で英数字にマッチするものとなると思うのですが 例えばajgko-jk-s1olのように「-」記号が入っているとマッチしません どう記述すればよいですか?よろしくお願いします。
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 11:57:12 .net] >>630 [-0-9a-zA-Z]
638 名前:630 [2006/12/28(木) 12:01:22 .net] >>631 さんありがとうございます。 しかし上記のように記述しても読み込んでくれません・・・。 こう記述して[-0-9a-zA-Z]{10,10} 「BC-K-o58tB」これを認識してくれません。
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:09:19 .net] どのアプリ使ってんのよ
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:10:47 .net] >>632 ちゃんとマッチするけど・・ ↓ $ echo 'BC-K-o58tB' | egrep '[-0-9a-zA-Z]{10,10}' BC-K-o58tB
641 名前:630 [2006/12/28(木) 12:11:07 .net] アプリ?良くわかりませんが言語PHPです。
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:11:52 .net] ならPHPのスレで聞いた方がいいんじゃね
643 名前:630 [2006/12/28(木) 12:16:40 .net] PHPのスレで聞いたら正規表現に行けと言われました。orz
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 14:04:02 .net] 無限ループキタ━━━━━━(゚∀゚)━━━━━━ !!!!
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 21:33:37 .net] PHPだとPOSIX由来の正規表現とPerl互換の正規表現があるけどどっち? 後者を使っているならpreg_match('/[-0-9a-zA-Z]{10,10}/', $str)みたいに 正規表現の前後にスラッシュが必要。
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/29(金) 11:07:30 .net] 正規表現 part 3 pc8.2ch.net/test/read.cgi/tech/1156413899/
647 名前:名無しさん@お腹いっぱい。 [2007/01/09(火) 23:17:53 .net] 始めたばっかりで、3時間かかってもダメです… お助けを。 ()で囲まれる任意の文字部分だけをとりたいんですが、 \(..*\) では全然ダメですね… ()もついてくるし。 *****(ABC-_)(123%&)*****(あいう)*** 上の例だと、以下の3つを取りたいです。 ABC-_ 123%& あいう
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/09(火) 23:43:33 .net] >>641 sed -e "s/(.*)/()/g" でどうよ
649 名前:名無しさん@お腹いっぱい。 [2007/01/10(水) 00:12:39 .net] >>642 Unix版でしたね… Windows系でのやり方を知りたいです。
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 00:19:56 .net] >>642 基礎からやり直せ。
651 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:41:33 .net] >>642 なんか冗長だが... use strict; use warnings; while(<>){ s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g; print $_; }
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:42:28 .net] >>643 Windowsにもsedは移植されてるじゃん。
653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:59:51 .net] >>643 板違い。
654 名前:名無しさん@お腹いっぱい。 [2007/01/18(木) 10:55:44 .net] >>641 正規表現でググレカス
655 名前:名無しさん@お腹いっぱい。 [2007/02/07(水) 08:21:33 .net] すみません、以下の正規表現は何にマッチするんでしょうか? ([\011\012\014 -~]+\\|\\(\\cj\\|\n\\)+\\) 処理系はLispです。お願いします。
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/08(木) 02:57:00 .net] >>649 LispつかEmacs Lispだろ。先頭に \\ が抜けてないか? [\011\012\014 -~]+ タブかLFかCRかスペースかASCIIの表示可能文字の繰り返し \\| または \\(\\cj\\|\n\\)+ Cjって多バイト文字でいいんだっけ? か改行の繰り返し
657 名前:649 mailto:sage [2007/02/08(木) 15:45:20 .net] >>650 すみません、おっしゃる通り先頭に\\が抜けていました。 なるほど、どうもありがとうございました。
658 名前:名無しさん@お腹いっぱい。 [2007/03/27(火) 16:10:01 .net] コンマはエスケープする必要はありますか? We are NOVA-TOMO\, right?
659 名前:名無しさん@お腹いっぱい。 [2007/03/27(火) 17:34:57 .net] 必要ないと思った。付けても問題ないと思うけど。 むしろ?の方が… 俺詳しくないから何ともいえないけど
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 01:44:02 .net] カンマはどの正規表現でもメタ文字じゃないのでエスケープの必要はない。 むしろ >>653 のいうとおりで ? が要注意。 grep/sed ならエスケープなしでOK。 egrep/awk/perl その他Perl互換のものなら要エスケープ
661 名前:名無しさん@お腹いっぱい。 [2007/04/21(土) 22:17:17 .net] 当方、秀丸を使っております。 “・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか? どうしても、「」で囲まれる前の文章もヒットしてしまうのです。
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/21(土) 22:55:33 .net] >>655 秀丸とやらはUnixで動くのかい?
663 名前:名無しさん@お腹いっぱい。 [2007/04/21(土) 23:03:01 .net] げ、UNIX版でしたか! 失礼しました。
664 名前:名無しさん@お腹いっぱい。 [2007/05/04(金) 12:21:16 .net] ニフティーのドメイン以外を拾う為に [^nifty]\.com と書くのは間違いのようですが 特定の“文字列”以外を指定するのはどーすりゃいいの?
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 12:44:28 .net] 否定先読みなどの拡張があればそれを使えばいいが、なくても それ以外の文字列をすべて列挙すればなんとかなります。
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 13:59:38 .net] grep -v '特定の文字列' filename
667 名前:名無しさん@お腹いっぱい。 [2007/05/04(金) 14:35:47 .net] 正規表現の話では? ([^n]....|.[^i]...|..[^f]..|...[^t].|....[^y])\.com これが正解
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:54:42 .net] nifty.com以外のナントカ.comにマッチさせたいのだから、 ([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*)\.com ではないか?
669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:56
] [ここ壊れてます]
670 名前::11 .net mailto: 無理に正規表現でがんばるより 他の方法を探した方がいい。 [] [ここ壊れてます]
671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:58:05 .net] それではniftyhoge.comにマッチしないので ([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*|nifty..*)\.com
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 15:58:18 .net] perlならもうちょっと簡単? perl -ne 'print if /(?<!nifty)\.com/' grep -v とか否定を使うほうが素直だと思うけど。
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 16:31:54 .net] ヒネクレたひとたちばかりいるスレですから
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 16:44:04 .net] このスレの中くらいは正規表現原理主義でいいじゃないか
675 名前:名無しさん@お腹いっぱい。 [2007/05/05(土) 00:26:33 .net] その為のスレなんだから当然といえば当然だろ
676 名前:名無しさん@お腹いっぱい。 mailto:111111111111111111111111111111111111 [2007/05/21(月) 19:09:39 .net] はふ
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 22:36:56 .net] -rwxrwxr-x 1 53 53 3504 May 22 2006 index.htm drwxrwxr-x 4 53 53 4096 May 6 2006 common drwxrwxr-x 2 53 53 4096 May 22 2006 tmp drwxrwxr-x 2 53 53 4096 May 22 2006 image ↑から<属性>(-rwxrwxr-x)と<名称>(index.htm)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?
678 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:48:40 .net] ここは実は分かってない奴しかいねーから無理じゃね?ww
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:05:12 .net] >>670 グループ化って言うのがよくわからんけど、パーミッションの部分とファイル名の部分だけ取り出したいなら $ perl -e 'while(<>){ if(/^([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*(.*)$/){ print "$1 $9\n"; }}' < test.txt -rwxrwxr-x index.htm drwxrwxr-x common drwxrwxr-x tmp drwxrwxr-x image $ ぐらいからはじめればいい。
680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:44:17 .net] 確かにみんなもっとスマートに書けないものかねえ・・・
681 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:31:04 .net] ^([^\s]+)(.*)([^\s]+)$ $1 $3
682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 03:06:51 .net] (; ^ω^)
683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 07:07:47 .net] むしろ正規表現使わないでreaddirとstat使うとこじゃないか?
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 15:00:33 .net] $ ls -al | sed -e 's/ \{1,\}/ /g' | cut -d ' ' -f 1,9 cut 使うのは反則?
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/30(水) 16:06:37 .net] awk '{print $1,$9}' で十分では無かろうかと
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/01(土) 07:33:23 .net] gawkでJavaソースファイル内の「識別子」単位の置き換えをしようとしていますが, なかなかうまくいきません. たとえば,独立して現れる「Stack」は「Queue」に置き換えるが, 「argStack」は別の識別子だから「argQueue」とは置き換えず そのままにしておくというものです. Javaの識別子は[_0-9A-Za-z]の文字だけから構成されるとしています. awk以外の選択肢も含めて,よい方法がありますでしょうか? 最終的には,Javaで置換プログラムを書けばできなくもないとは思いますが, 安直な方法があればお教えください.
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/01(土) 08:57:42 .net] \< \> で囲っておくとか。
688 名前:679 mailto:sage [2007/09/01(土) 19:15:56 .net] grepの「-w」は普通にできるのに,いざ置換で同じことをしようとすると 難しいですね. 結局Javaで処理プログラムを書きました.ありがとうございました.
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 09:09:36 .net] hogeを含む行のうち^\s*'で始まらないもの をgrepするのにvimでは \(^\s*'.*\)\@<!hoge でできるようなんですが、サクラで (?<!^\s*'.*)hoge とするとダメでした。 これをgrepするにはどうすればいいでしょうか? サクラ(bregexp.dll)の正規表現はPerl5互換だそうなんですが。
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 09:53:00 .net] 板違い。
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 11:08:21 .net] じゃあ hogeを含む行のうち^\s*'で始まらないもの にマッチするPerl5正規表現を答えよ。 とします。
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 11:28:24 .net] ム板行け。
693 名前:情報工学ばが [2008/01/15(火) 20:48:47 .net] 正規表現ってなんですか?
694 名前:情報工学ばが [2008/01/15(火) 20:50:24 .net] はやく!!! 単位がないんです!!
695 名前:情報工学ばが [2008/01/15(火) 20:51:45 .net] お願いします。。。
696 名前:わし [2008/01/15(火) 20:55:01 .net] わしにはわからん。
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/16(水) 01:21:45 .net] >>686 【サルにもわかる正規表現入門】 www.mnet.ne.jp/~nakama/
698 名前:名無しさん@お腹いっぱい。 [2008/01/16(水) 12:24:11 .net] >>690 有難うございました。 おかげで単位取れそうやでー!! ほな
699 名前:名無しさん@お腹いっぱい。 [2008/01/17(木) 00:37:01 .net] 語り手緊急募集中!! 坐禅と見性第54章 片手の他人がたたく拍手の音 life9.2ch.net/test/read.cgi/psy/1192448109/ 【仏教】悟りを開いた人のスレ 10 【鬼和尚】 life9.2ch.net/test/read.cgi/psy/1200142232/ 【悟りで居る】悟りを開いた人スレ【完全お釈迦様派】 life9.2ch.net/test/read.cgi/psy/1198295563/ 萬福寺行った。1.2 love6.2ch.net/test/read.cgi/kyoto/1188809052/ 【茶の湯】 大徳寺について 【禅文化】 love6.2ch.net/test/read.cgi/kyoto/1145457556/ 臨済宗 大本山天龍寺 2 love6.2ch.net/test/read.cgi/kyoto/1183216094/ 【算盤】臨済宗 妙心寺派【金権】十五日は祝聖 love6.2ch.net/test/read.cgi/kyoto/1198725369/ ★★臨済宗・癖有り布教師さん★★ love6.2ch.net/test/read.cgi/kyoto/1172800156/ 臨済宗国泰寺派について love6.2ch.net/test/read.cgi/kyoto/1151120179/ 臨済宗相國寺派について love6.2ch.net/test/read.cgi/kyoto/1146749623/
700 名前:名無しさん@お腹いっぱい。 [2008/02/24(日) 13:39:51 .net] 2008-03 発売(予定) 「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳) ISBN 978-4-87311-359-3 定価 5,040円
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/24(日) 17:10:30 .net] バイト代が全部本で消えていく・・・
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/24(日) 18:03:30 .net] あるある
703 名前:名無しさん@お腹いっぱい。 [2008/02/26(火) 14:03:08 .net] 2/1 XXXXXXXX 2/2〜2/5 XXXXXXXXX 2/7〜2/8 XXXXXXX 2/12 XXXXXXXXXX 2/20〜2/28 XXXXXXXXX と書かれた行があり 今日より以前の日付の行を削除するにはどうすればいいですか
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 15:50:38 .net] それは正規表現の問題か?
705 名前:名無しさん@お腹いっぱい。 [2008/02/26(火) 17:23:03 .net] Cの構造体のようにネストする可能性のあるものを正規表現で抽出するにはどうすればいいでしょうか?
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 17:26:13 .net] 無理
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 21:47:00 .net] >>699 正解
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 22:31:20 .net] >>696 日付の切り出しを正規表現でやって、日付の判定以降はプログラムでがんばれ。
709 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 14:24:40 .net] sedを使って 2007/1/2 2007/1/23 2007/12/2 2007/12/31 のデータを 2007/01/02 2007/01/23 2007/12/02 2007/12/31 にするにはどうすればいいですか
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 14:28:44 .net] sed -e 's,/1/,/01/,' -e 's,/2$,/02,'
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:14:22 .net] >>703 9日近く書き込み無いのによく質問に高速で答えられますね 尊敬するとともに変態だと思います。
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:15:08 .net] 別に何日書き込みがなかろうが関係ない。
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 22:36:13 .net] >>704 今時ブラウザでみてる奇特な人かな? 別にこのスレを毎日人手でチェックしてるわけじゃなくて、 専ブラの巡回リストに入ってるだけのことだと思うよ。 まあ、確かに4分でレスするのはちょっとすごいが よくよく見たら 2007/3/3 とかは変換しない... ほんとにそれでいいのか? >>702
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 23:43:20 .net] >>703 もわざとその答えにしたんだろ。 要するに質問の仕方が悪いって事だ。
715 名前:ウサチャソ ◆/0IEZmXnQ6 mailto:sage [2008/03/17(月) 21:53:04 .net] >>702 ゼロサプレス 正規表現 とか ゼロパディング 正規表現 とかでググってみるといいかモナー 最近sedは使ってないから漏れはやり方知らんw
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 14:24:00 .net] どの文字列にもマッチしない正規表現ってどう書くんでしょう?
717 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 16:47:03 .net] (?<=a)a
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 09:09:37 .net] 空文字列にもマッチしない?
719 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 23:02:47 .net] しないよ というか自分で試せよ
720 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/21(金) 00:44:43 .net] 710って、aaにマッチするよ 戻り読みの位置が違うんじゃね?
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/21(金) 20:07:35 .net] (?!a)a こうかな
722 名前:名無しさん@お腹いっぱい。 [2008/06/02(月) 10:30:14 .net] Vimでファイルの中からhttpで始まり、htmlで終るURLを抜きだしたいのですが、 どのようにすれば可能でしょうか? いろいろと試してはいるのですが、行中の最大にマッチする等なかなかうまくできません。
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:38:21 .net] 最短でマッチさせたらさせたで、 ディレクトリのどこかに .html があると破綻する
724 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 08:27:21 .net] emacs(の置換)と perlのそれぞれで、 「日本語の文字列」を指定する正規表現が知りたいのですが、 どこを見ればよいでしょうか? 「ASCII文字を含まない文字列」でもOKです。
725 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 13:33:02 .net] >>717 (info "(elisp)Regexp Backslash") | `\cC' | matches any character whose category is C. Here C is a character | that represents a category: thus, `c' for Chinese characters or | `g' for Greek characters in the standard category table. というのがあるんだけど、C の説明が無いね。 \cj だった気がするけど、不具合があるかもしれん。 ASCII 以外だと、↓これはいかが? (info "(elisp)Char Classes") | `[:multibyte:]' | This matches any multibyte character (*note Text | Representations::).
726 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 14:36:53 .net] >>718 ありがとうございます。emacsのinfoではなく、 elisp infoにあるんですね。 「日本文字にはさまれたascii空白」を検索したかったので、 emacsでは"¥cj ¥cj" でだいたいよさそうです。 (どういうわけか [:multibyte:]や[:nonascii:] という指定は C-u C-s などではうまく動いてくれないようなのですが・・・ (ascii文字の一部にマッチしてしまう)
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 14:41:33 .net] >>719 > (どういうわけか > [:multibyte:]や[:nonascii:] > という指定は > C-u C-s などではうまく動いてくれないようなのですが・・・ > (ascii文字の一部にマッチしてしまう) [[:multibyte:]] としんとだめやよ。
728 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 18:33:15 .net] あ、そういうことか!どもです。
729 名前:名無しさん@お腹いっぱい。 [2008/09/04(木) 15:15:43 .net] ttp://codezine.jp/article/detail/1573 やたら難しいのですが。 詳説正規表現を読めば、解けるようになりますかね?
730 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/05(金) 01:34:49 .net] >>722 難しいか? それ。
731 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/18(木) 18:37:47 .net] >>722 プログラミングperlの正規表現の解説部分を 読んでもなんとかなるかも(´・ω・`)
732 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/28(日) 20:34:23 .net] >>722 詳説正規表現は文字通り「詳説」。 正規表現を使うことが目的の人にはヘビーすぎる。
733 名前:わいきむら [2008/10/20(月) 09:09:22 .net] 空の文字クラス'[]'はどういう意味になりますでしょうか? あと'-'が文字クラスの最後にある場合もダッシュとマッチせよ という意味になるのでしょうか?
734 名前:わいきむら [2008/10/20(月) 09:12:46 .net] すみませんダッシュじゃなくてハイフンですか
735 名前:船木康博 [2008/10/20(月) 09:14:08 .net] さーてと、 パソコンに於ける衛生面についてカキコして、 とりあえずここらでアクティブソナーにQSYするかなー♪ ・VDT症候群に注意。 ・腱鞘炎に注意。 ・大音量による聴覚障害に注意。 マウスは玉の有り無しで、オスとメスがあるでよ。 光にも種類があるし、トラックボールもあるし。たまには玉の辺りの掃除でもしてやってくれ。 ボタンも林檎の1個や米窓の2個じゃなくて、SUNあたりなら3個あったんじゃねぇかなぁ。 最近じゃあ、ホイールも回転方向以外に左右に振れるのもあるでよ。 最後は、鍵盤だ。雑菌が繁殖して、便所より汚いモノもあるでなぁ。 病気移しちゃあいけねぇで、触らせる相手は自分で判断して制限しろよ。 おいもかはまぐり触った手かもしれねぇし、汁がとんでるかもしれねぇからな。
736 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/21(火) 02:39:30 .net] >>726 中身が空の [] はわからんが、末尾のハイフンはその通り。 範囲指定じゃなくてハイフンそのものとして解釈される。
737 名前:名無しさん@お腹いっぱい。 [2008/10/22(水) 17:48:58 .net] 質問させてください。 Fortranのコードから、「subroutine abc()」「 subroutine abs()」のような サブルーチンの開始行だけをgrepで抽出したくて grep ^\s*subroutine ./*.f90 と書いたのですが、「 subroutine」で始まる行がマッチしていないようです。 どのようにしたらこれをマッチさせられるか教えてください。 ちなみに、コード内には 「! subroutine abc()」「!subroutine abc()」なども含まれています。
738 名前:730 [2008/10/22(水) 19:23:26 .net] >>730 どなたか、ほんとお願いします!!
739 名前:ウサチャソ ◆/0IEZmXnQ6 mailto:sage [2008/10/22(水) 21:00:29 .net] >>730 ' とか " で括ってないとか? 話逸れるけど、grep は egrep が一番速いらしいよ。 egrep は「(・∀・)イイ!! 」grep! なんっつってw はぁ〜…
740 名前:730 mailto:sage [2008/10/22(水) 21:25:28 .net] >>732 そのとおりでした。 grep "^\s*subroutine" ./*.f90 としたらうまくいきました、ありがとうございます。 .....なんでこんなことに.....orz orz orz
741 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/23(木) 03:40:28 .net] 「(・∀・)イイ!! 」grep!
742 名前:名無しさん@お腹いっぱい。 [2008/11/08(土) 14:16:27 .net] ムズいなこれ codezine.jp/article/detail/3039 codezine.jp/article/detail/2676
743 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/15(土) 20:26:45 .net] 機能的にegrepのが遅そうな気がするけど
744 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/19(水) 14:37:34 .net] >>735 正規文法(正規言語)には定義があるけど 正規表現に「数学的に厳密な定義」は存在しないと思うんだけどねー まあ>>51 でがいしゅつだったからどうでもいいや
745 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 16:15:06 .net] 教えていただけますでしょうか。 1(文字列A)文字列B というものを (文字列A)文字列B にするのはどう書けばよいのでしょうか。 文字列A、文字列Bとも長さは不規則です。
746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:32:03 .net] sed 's/^.//'
747 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:38:33 .net] すみませんが詳しい方のみ回答をお願いします
748 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 18:41:27 .net] 日本語や英語など特定の文字列をgoogle検索のリンクにしたいです。 例えば、「正規表現」という文字列をgoogleのリンクにしたい場合だと、 正規表現(せいきひょうげん、regular expression)とは、 文字列の集合を一つの文字列で表現する方法の一つである。 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ <a href="www.google.co.jp/search?q=%90%B3%8BK%95\%8C%BB ">正規表現</a> (せいきひょうげん、regular expression)とは、 文字列の集合を一つの文字列で表現する方法の一つである。 としたいです。ただし ・繰り返し1語1語適用することで複数の単語をリンク化する または一発で複数の単語をリンク化する方法でもいい ・すでにリンクされているものを二重にリンクしない ・タグ内の文字列はリンク化しない ・英語は文章内の単語が完全一致すればリンク化し、 日本語は部分一致したらリンク化する ・英語の連語には対応しなくていい。 ・リンク化したい文字列が「正規」「正規言語」などのように 「正規」⊂「正規言語」という関係のものは想定しない 使う言語はAWK、Sed、Perlのいづれかとする。 お願いします。
749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 19:14:08 .net] その質問は正規表現スレで扱う範囲を越えてます。
750 名前:名無しさん@お腹いっぱい。 [2009/05/18(月) 22:21:54 .net] 8桁の10進数を文字列とみなしたとき、 下2桁が"00"でない文字列をヒットしたい。如何すればよいか?
751 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/18(月) 22:33:28 .net] [0-9]{6}[1-9]{2}
752 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/19(火) 08:56:24 .net] [1-9][0-9]{5}([0-9][1-9]|[1-9][0-9])
753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 22:23:08 .net] 正規表現でアルファベット6文字というのはどう書けばいいでしょう? [A-z][A-z][A-z][A-z][A-z][A-z] これじゃださいですよね?
754 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:42:14 .net] [A-z]{6}
755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:57:06 .net] [A-z]だと[\]~_`を含むよ。[A-Za-z]{6}にしなはれ
756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 10:22:05 .net] POSIX 正規表現が使えるなら [[:alpha:]]{6} とか。
757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 10:29:36 .net] POSIX文字クラスはロケール依存の罠があるから避けた方が無難と思う
758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:21:52 .net] POSIX 文字クラスって [[:isalpha:]] みたいのを言うんじゃなかったっけ?
759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:23:34 .net] おっとなんか馬鹿なこと書いてしまった。 [a-z] も locale でどうマッチするかかわったりするよ?
760 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 13:28:45 .net] ホント? \w とかなら変わると思うけど、 [a-z] は locale に依らず ASCII コードの範囲になるのでは?
761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 02:14:08 .net] 書き込み禁止されてた。 >>753 どのUNIXでもそうなるとは断言できないけど、locale が en_us.UTF-8 とかのときに a-z が aAbB….yYz な集合になるものもあるよ。 POSIX的には コード順だと定義はしてはいなかったはず。
762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 08:44:18 .net] 文字列の範囲はロケールに依存する。例えば、エストニア語のアルファベット では、s の後に z があり、その後は t、u、v、w、x、y と続くので、[a-z] で はすべての小文字のアルファベットにマッチしない
763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 05:54:23 .net] うふふ
764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 21:28:07 .net] >>754 それはlocaleの問題でもOSの問題でもないだろ 例えばlgrepはデフォルトがcase insensitiveだし
765 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/26(金) 17:56:44 .net] >>757 問題が理解できてないようだな。君は話に加わらなくて良いよ。
766 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/26(金) 18:09:55 .net] それだけだとかわいそうなので補足すると、 >>754 が言ってるのは case sensitivity の問題じゃないよ。 >>754 のレスの「aAbB….yYz」をよーく目をこらしてみてごらん。 ロケールによってはこういう不思議現象が起こるのよという話。
767 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:38:46 .net] ジオ落ちててonigurumaのソースが落とせん。 だれかミラー的なもの知らない?
768 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:50:51 .net] いや、あったは、ミラー。<mirrorservice.orgとか
769 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/19(土) 19:50:17 .net] ()内の、で区切られたものを 1(あああ、1) → 1(1、あああ) 2(ううう、3) → 2(3、ううう) 3(えええ、1) → 3(1、えええ) のように入れ替えたいです。 条件は ・括弧は半角全角どちらでも対応。出力はどちらかに統一する。 ・(あああ、いいい、ううう)のように3つ以上あるのは無視する それと、こうやってもうまくいかないのは何故でしょうか? sed -e 's/(/\(/g' -e 's/)/\)/g' -e 's/、/,/g' test.txt | sed 's/\(([^,)]*),([^,)]*)\)/(\\2、\\1)/g'
770 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/19(土) 19:51:30 .net] こうやれば望みどおりの結果は出たのですが、 汎用性が低いのでもっとちゃんとしたのを作るにはどうしたらいいですか? #!/bin/awk -f BEGIN { FS="((|)|\\(|\\)|、| | +)" } { {print $1"("$3"、"$2$4")";} }
771 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/05(土) 13:45:25 .net] あ
772 名前:名無しさん@お腹いっぱい。 [2010/06/02(水) 05:32:30 .net] ほ
773 名前:名無しさん@お腹いっぱい。 [2010/06/02(水) 17:20:06 .net] arrow3.way-nifty.com/shige/images_pc/RegExp.png www.codezine.jp/static/images/article/1655/config.jpg mckyblog.img.jugem.jp/20090724_436625.png www19.atpages.jp/imagelinkget/get.php?t=v&u=makotowatana.ld.infoseek.co.jp/VBScriptRegularExpressions.png makotowatana.ld.infoseek.co.jp/text.gif
774 名前:名無しさん@お腹いっぱい。 [2010/09/23(木) 21:58:59 .net] 行頭にある>以外の>を置換したいのですが、どのように記述できるでしょうか?
775 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/09/24(金) 11:09:22 .net] >>767 ヘタレな処理ですみません。動けば正義。 echo '>1>2>3>4>5>' | perl -ne '/^(.)(.*)/; ($a,$b)=($1,$2); $b=~s/>/*/g; print "$a$b\n";'
776 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/10/03(日) 22:07:49 .net] >>767 行頭にもし「>」が複数有れば二ツ目以降を削除する処理と 「>」以外が一文字以上続いてから「>」が一文字以上出現する文字列を 「>」以外が一文字以上続いている部分に置換する。 以上。
777 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/10/10(日) 09:52:22 .net] >>769 性器表現で書けよニダ
778 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/10/11(月) 21:58:34 .net] >>770 ^>>+とか[^>]+とか あえて書くことに意味は無いし、 削除や置換は正規表現では書けない。 文章の表面ではなく、コンテキストを嫁。
779 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/12/12(日) 10:48:21 .net] /RegEx/ - 便利な正規表現、みんなで共有 regex.gkbr.me/
780 名前:名無しさん@お腹いっぱい。 [2011/01/11(火) 08:29:20 .net] EmacsとpTeXを使っています。 pTeXでは日本語の括弧はいわゆる全角で書かないときれいに出ないみたいなので、 「(日本語)」のような表現を一発で「(日本語)」のように変換したいたと思うのですが、 これはどう書けばいいのでしょうか。 (日本語abc)や(Abc日本語)や(Abc日[改行コード]本語)のようなものにも 対応しなければならないような気がします。(abc)のようなのはそのままにしておきたいです。 てことは、 「両端が()で、()のなかにmultibyte文字が1文字でも入っているもの、複数行にも マッチする」という条件でよさそうなのですが、どうでしょうか。 "([[:multibyte:]]+)"で(日本語)の形のやつまではわかったのですが、 その先に進めません。PerlのスクリプトでもOKですので教えてもらえないでしょうか。
781 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/11(火) 15:02:53 .net] >>773 入れ子になった括弧には未対応。 (replace-regexp "(\\([^\\(]*[[:multibyte:]][^\\)]*\\))" "(\\1)") # pLaTex で otf 使えば大丈夫だったような?
782 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/11(火) 17:55:06 .net] ありがとうございます。うまく動くようです。 OTFパッケージの方は実験してみましたがやっぱり()と()は区別しているような・・・
783 名前:名無しさん@お腹いっぱい。 [2011/03/12(土) 12:19:28.18 .net] apacheのmod_rewriteでURLを書き換えたいと思っています。 以下が.htaccessのコードになります。 ------------------------------------------------------------------------- RewriteEngine On RewriteRule ^([a-z0-9_-]+).htm$ execute.php?id=$1 ------------------------------------------------------------------------- 例えば、”moge/test.htm ”にアクセスすると”moge/execute.php?id=test ”と同じようになるというものです。 ディレクトリにはexecute.phpの他にindex.htmを置きたいと思っているのですが、上のhtaccessを設置すると、”moge/execute.php?id=index ”に飛ばされてしまいます。そこで、正規表現で特定の単語(index)を除外するにはどうすればいいのでしょうか? ご回答お願いします。
784 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/12(土) 14:53:45.34 .net] Rewriteが htmなら index.html ファイルにする
785 名前:776 mailto:sage [2011/03/12(土) 15:37:35.48 .net] >>777 あ、なるほど 確かにそれでもいけますね さんくすです ちなみに正規表現で特定の単語だけ除外っていうのはできないのでしょうか??
786 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/16(水) 20:14:08.75 .net] 否定先読みでおk あとマルチ乙
787 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/29(火) 11:43:28.27 .net] すっごく基本的なことで申し訳ないんだけど aaaを含んでいてbbbを含まない行 ってのはどう書くんですか。
788 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/29(火) 12:00:15.87 .net] それは正規表現だけでやらなきゃだめなのかい?
789 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/29(火) 12:06:43.95 .net] grepでログの特定行を抽出したくて
790 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/29(火) 12:20:13.45 .net] grep -v
791 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/29(火) 12:29:14.56 .net] >>782 GNU grep で grep aaa logfile | grep -v bbb ってのじゃだめ?
792 名前:784 mailto:sage [2011/03/29(火) 12:30:38.86 .net] かぶったか
793 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/29(火) 12:47:45.98 .net] ああ、そっか。-v ありがと
794 名前:名無しさん@お腹いっぱい。 [2011/04/08(金) 01:34:57.59 .net] vimの置換で以下のようなデータを置換したいです hoge(半角空白*****)\tsage\t ↓ hoge\tsage\t :%s/ //g だとhogeが ho ge だったりもするので 半角空白が続く\tを\tにしたいです。 どなたかご教示お願いします
795 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/08(金) 02:09:54.62 .net] >>787 :%s/ \+\t/\t/g とか? 本当にやりたいのは gg=G とか Align じゃないの
796 名前: 忍法帖【Lv=11,xxxPT】 [2011/06/22(水) 16:55:34.67 .net] aからz、かつAからZ、かつ0から9、かつその他記号(!"#$...)を含ませたいです。 [a-z&&A-Z&&0-9&&[^a-z^A-Z^0-9]] とやってみたのですがうまく行きません。(´;ω;`) どう表現すればいいでしょう。
797 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/06/22(水) 17:10:25.90 .net] .
798 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/06/22(水) 17:38:34.78 .net] >>789 むしろ含みたくない文字を列挙したほうが早いんじゃね?
799 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/06/23(木) 00:03:09.64 .net] >>789 それは印字可能な文字から空白を除いたものなんじゃあないのかい
800 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/07/08(金) 22:03:29.79 .net] 肯定条件と否定条件、常にペアで考えたいところです
801 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/03(水) 03:28:35.00 .net] >>787 :%s/\(半角空白\**\)//g ・・・ではなくて、Excelでいう所のtrim関数みたいな動作か?
802 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/07(水) 21:00:09.49 .net] gsedをターミナルで実行したとき、 丸数字の1〜20が[\x{2460}-\x{2473}]でマッチせず 「無効な範囲の終端」というエラーメッセージが出ます。 何を間違えているのでしょうか。
803 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/07(水) 22:36:48.15 .net] >>794 > :%s/ //g 当人がチャレンジした結果がこれだから、タブ区切りの各値をtrimしたいんだろうと思うよ。 > 半角空白が続く\tを\tにしたい ってことだから>>788 でいいと思う。でも>>788 の後半は違うと思う。
804 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/07(水) 22:41:28.98 .net] このスレ最近見てたと思ってたのに、8月だと…
805 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/08(木) 05:24:46.29 .net] >>795 の自己レス よく解らないのだけど、コードでなくそのまんま@からS(文字化けしていたらごめんなさい) まで、1行ずつの置換行を書き並べたらうまくいきました。 コードだと1行ずつ書いてもダメでした。エラーは出なかったからコード間違えたかな。
806 名前:名無しさん@お腹いっぱい。 [2012/05/27(日) 23:08:25.45 .net] linuxのgrepでgreenとつく単語を検索したいのですが、どういう正規表現を使えばよいのでしょうか
807 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/28(月) 08:03:03.12 .net] >>799 くだらねえ質問はここに書き込め! Part 200 engawa.2ch.net/test/read.cgi/linux/1335349596/
808 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/13(火) 18:47:33.56 .net] リンゴ 1個 ミカン 2個 イチゴ 1個 スイカ 1個 スイカ 3個 ナシ トマト トマト トマト パイナップル
809 名前:アップミス失礼しました mailto:sage [2012/11/13(火) 18:51:10.04 .net] リンゴ 1個 ミカン 2個 スイカ 1個 スイカ 3個 イチゴ 2個 トマト 1個 トマト 3個 トマト 5個 を リンゴ 1個 ミカン 2個 スイカ 1個 3個 イチゴ 2個 トマト 1個 3個 5個 のように整理したいとき、正規表現で実現可能ですか?
810 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/13(火) 21:24:23.96 .net] 何言ってんだ。
811 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/14(水) 02:50:13.58 .net] >>802 例えば sed toro.2ch.net/test/read.cgi/unix/1085730992/l50
812 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/16(金) 20:13:34.67 .net] リンゴ 1個 スイカ 1個 ミカン 2個 スイカ 3個 イチゴ 2個 元データがこうなってない前提ならでき
813 名前:驍ゥもしれない [] [ここ壊れてます]
814 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/16(金) 21:56:43.28 .net] なってても出来ないことはないと思える
815 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/17(土) 00:18:53.21 .net] いや、正規表現どうこうって話じゃないだろ
816 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/17(土) 03:31:10.85 .net] まあ、そうだね
817 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/17(土) 15:01:28.93 .net] 出発点になるテキストが規則的であればあるほど作業が楽になる。
818 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/17(土) 16:45:39.64 .net] sedスレで聞いてないね。perlやawkなど、どこか他で見た? ってか、本人どうしたの?
819 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 02:35:29.83 .net] 釣りだったようだな。
820 名前:802 mailto:sage [2012/11/20(火) 15:26:50.28 .net] いろいろ研究中ですが、釣りじゃありませんw 他のスレにまで投稿すると、マルチで蹴られてしまうからです。
821 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/20(火) 16:03:55.39 .net] マルチは同じ話題が並行して進行するのが問題。 ちゃんと移動すればマルチじゃないよ。
822 名前:名無しさん@お腹いっぱい。 [2012/11/20(火) 18:49:22.20 .net] 以下のような文章があったとします。 〜aaa〜bbbaaa〜bbbaaa〜bbb〜 (〜は文字数の定まっていない文字列を表しています。) ここから、それぞれ最初のaaa〜bbbだけを抽出、真ん中のaaa〜bbbだけを抽出、最後のaaa〜bbbだけをで抽出したい時、どう正規表現で表せばよいのでしょうか?
823 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/20(火) 20:13:44.36 .net] sedじゃだめなのかよ
824 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 02:55:30.50 .net] 「aaa」と「bbb」を例えば「【」「】」に置き換えてみると楽かも。 【があって、】以外のものがあるかないかして、】があったとき が検索パターンってことになるよね。ここまでが正規表現。 その後は、1回目にマッチしたときだけ吐き出す、最後にマッチしたものだけ…… は、何を使うかで変わってくる。
825 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 07:09:17.34 .net] >>816 「【」「】」に置き換えるんじゃなく、「aaa」と「bbb」の例でお願いします。 「【」「】」みたいな1文字じゃなく、「aaa」「bbb」みたいな複数文字なので。 しかも、「aaa」と「bbb」の間に普通の文字としてa bもあります。
826 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 08:20:17.05 .net] こいつ、何もわかってない
827 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 10:34:37.69 .net] perlの正規表現使わないと無理だと思うよ。
828 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:10:04.60 .net] こんな感じかな? aaa[^b]*\(b\{0,2\}[^b]\+\)*b\{0,2\}bbb
829 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:16:22.41 .net] >>813 の直後なのにマルチ
830 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:18:53.62 .net] 移動してるからマルチじゃないだろ
831 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:27:34.16 .net] もっとタイムリーに本人出てこないとダレるわ
832 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:41:33.62 .net] >>822 toro.2ch.net/test/read.cgi/tech/1340383120/421
833 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:43:27.15 .net] >>824 おお、なるほど。 そんなところにも正規表現スレあったのか。
834 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 11:48:07.59 .net] マルチか。もう知らん。
835 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 19:22:47.43 .net] 別人だと言ってるけど、それにしては似すぎ
836 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 19:39:46.55 .net] こっちの見て書いたんだろ。 別人だとしてもマルチと変わらんな。
837 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 19:53:25.11 .net] ここにもある。なんか、もうやだw シェルスクリプト総合 その21 toro.2ch.net/test/read.cgi/unix/1352973453/l50
838 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 19:55:53.48 .net] というよりシェルのが大元なのか。まあ、移動すると書いてあるからいいか。
839 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/21(水) 23:32:17.64 .net] こっちの奴は句読点付けてるのな
840 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/22(木) 00:06:51.47 .net] > シェルスクリプトスレより誘導されてきました って書いてあんじゃん。ってかなんでこっちのスレで話を続けてるのかがわからん。 マルチうざい放置でスルーしよ
841 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/22(木) 00:32:49.10 .net] どっちが偽物とか関係なく、向こうの正規表現スレだけで進行させときゃ済む話だしな
842 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/08(金) 21:56:18.88 .net] すみません (1) (2) (30) (50) (123) (256) こんな感じのデータを (001) (002) (030) (050) (123) (256) こんな感じで変換するのはどうしたらいいんでしょうか?
843 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/09(土) 00:11:09.75 .net] sed -e 's/(\([0-9]\))/(00\1)/' -e 's/(\([0-9][0-9]\))/(0\1)/'
844 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/09(土) 08:01:38.44 .net] すみませんが詳しい方のみ回答をお願いします
845 名前:834 mailto:sage [2013/03/09(土) 08:24:40.01 .net] >>835 うまくいきましたありがとうございました。"-e"でスクリプトを2つ記述すればよかったんですね なんか頭が固くて思いつきませんでした…。助かりました。
846 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/09(土) 11:33:06.26 .net] パイプもあるでよ
847 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 04:11:12.59 .net] >>834 , >>836-837 二度とこのスレに来るな。(俺が>>835 でないのは命を懸けて誓う)
848 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 12:21:19.60 .net] このスレに来るな。(キリッ 命を懸けて誓う(キリッ 2ちゃん初めてか? 肩の力抜けよ。
849 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 15:01:39.61 .net] そりゃ>>835 ではないだろ。
850 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 18:41:45.07 .net] しかし>>836 の悪態はへどがでる
851 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 19:19:40.33 .net] 836 はウニ板で普通に見かける煽りレスだろ
852 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/12(火) 21:07:11.26 .net] 質問です 正規表現使うとだーって英文テキストの変換が出来るじゃないですか そこで各英単語の頭文字のみをわーって大文字に変換したいんです 出来ますの?勿論ググりましたが、当方馬鹿なのでわかりません サルでも分かるような回答を強く期待します 僕はこういう小バカにしたような書き方しか出来ませんが、凄く切実に知りたいです さぁどうぞ↓
853 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/12(火) 21:36:04.74 .net] >>844 引用符の中の単語はどう扱いますか? ``internationalization'' 等の長い単語が改行処理で ``-'' を使用して 分割された場合はどう扱いますか? などなど, 例外事項が多々発生します. すべての例外事項を網羅した上で, 各条件の対応方法を明記した上で 再質問したください.
854 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/12(火) 21:40:19.06 .net] >>844 だけで答えられる方によるサルでも分かるような回答を強く期待します さぁどうぞ↓
855 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/12(火) 22:16:49.08 .net] こいつネタであちこちに書いてるやつだから まともに相手してもムダだよ。
856 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/12(火) 23:24:14.34 .net] >>844 > 正規表現使うとだーって英文テキストの変換が出来るじゃないですか いや?
857 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/13(水) 04:58:06.84 .net] 大抵のアプリケーションにはデフォルトで付いてる機能だよな。 MS-Wordとかさw
858 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/13(水) 08:04:10.12 .net] >>845 横レス済まんが、仮にクォーテーションやハイホネーション無視でいいから 単語1文字目を大文字に、って要求だったら、あんた
859 名前:答えられるのかね? [] [ここ壊れてます]
860 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/13(水) 09:38:14.58 .net] >>850 いや それがなにか?
861 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/14(金) 04:31:45.66 .net] < じゃね? 単語の始まり
862 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] 何かネタないの?
863 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] 先日、他部署を交えて開かれた社内技術交換会でのこと。 先輩は自分が開発担当したあるソフトのコーディング中に思いついたという ある文字列処理のプログラミングについて得意気に解説し始めた。 話し始めてしばらくして、隣の部署の人が口をはさんだ。 「それ、正規表現使えば済む話ですよね。スクリプトならsedとかで、 C言語からならregex(3)の関数群呼べばいいし。ウチでも昔はそれ専用の 文字列処理をいちいちコーディングしてたこともありますが 今ではregex(3)ばかり使ってます。ところで今日のお話というのは、 regex(3)を改良する方法か何かですか?」 そのあと先輩の話は支離滅裂になり、何の技術交換会だったのか よく覚えていない…
864 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] 勉強会だったら別にいいじゃん 文字列処理に役立たなくてもコーディング技術の勉強になれば 正規表現のライブラリが使えるのと正規表現のロジックを編み出すのは全く別の話 なんで別の部署の奴は得意げなんだ? 正規表現の存在を知ってる俺カッケーってこと?
865 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] コピペニマジレスカコワルイ
866 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] ↓ヤンクがどうたら
867 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] コピペすなわちコピー&ペーストはWindoze用語。 UNIX(vi)ではヤンク&プットなのでヤンプと言う。 この用語を間違えて使用しているとドザと思われて馬鹿にされるので 気を付けるように。
868 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/15(月) NY:AN:NY.AN .net] (´・ω・`)ノ ハーイ!
869 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/08/30(金) NY:AN:NY.AN .net] 家畜人ヤンプ
870 名前: 【中吉】 mailto:sage [2013/09/01(日) 04:33:31.70 .net] \(..*\) ←どうしたって顔文字に見えちゃうよねぇ
871 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/09/01(日) 07:39:33.31 .net] ホスト規制で使用する正規表現の「(、|、)」の使用法について質問です。 「tanaka.co.jp」「tanaka.ne.jp」の両方を規制したい場合 「\.tanaka.(co|ne).jp」であっていますでしょうか?
872 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/09/01(日) 07:59:41.15 .net] それだと .tanakainenjp とかでもマッチしてしまいます
873 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/09/01(日) 08:46:24.81 .net] うしろ2つのピリオドもエスケープしろってこと。
874 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/09/01(日) 09:12:06.75 .net] ありがとうございます! 「\.tanaka\.(co|ne)\.jp」ですね
875 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/09/22(日) 06:34:10.28 .net] そろそろ保守し続けないといけない?
876 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/20(金) 05:42:21.79 .net] >>861 見えちゃう、見えちゃう。って、あれ、自分で書いたんだったorz
877 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/02/10(月) 17:15:58.93 .net] そっか、保守必要なのか
878 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/03/27(木) 02:42:30.48 .net] てす
879 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/03/27(木) 07:28:06.64 .net] >>869 [test] 書きこみテスト 専用スレッド 12 [テスト] toro.2ch.net/test/read.cgi/unix/1382232233/
880 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/03/27(木) 07:58:50.65 .net] >>870 「てす」は保守目的ジャマイカ?
881 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/03/27(木) 09:03:14.23 .net] 保守目的なら「ほす」だろう。
882 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/03/27(木) 10:42:31.43 .net] そうか、そうだな。許してほす
883 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/05/31(土) 04:04:08.83 .net] 「正規表現」って変な名前だけど、定着してきたみたいだね?
884 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/05/31(土) 05:56:12.12 .net] 定着も何もコンピュータ上で実現される以前からこの名前じゃねーの?
885 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/05/31(土) 06:16:13.32 .net] 正規表現は誤訳が定着したもの。 「無理数」の誤訳と一緒。
886 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/0
] [ここ壊れてます]
887 名前:5/31(土) 06:44:21.84 .net mailto: じゃあ、正しい訳語をどうぞ [] [ここ壊れてます]
888 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/05/31(土) 06:57:48.92 .net] さらに有理数なんて、無理数の無を有に変えた造語だしな。
889 名前: 【小吉】 mailto:sage [2014/06/01(日) 03:33:37.47 .net] このスレの住人はどうやら5人のようだ
890 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 06:19:33.54 .net] 複素数も誤訳
891 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 09:45:27.06 .net] 正しい訳語を提示せずに誤訳誤訳叫ぶとか馬鹿にしか見えませんよ?
892 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 12:03:50.34 .net] >>879 俺も居るよ
893 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 12:06:10.74 .net] 教えて欲しいなら教えてくださいといって聞かないと馬鹿にしか見えませんよ?
894 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 12:16:06.10 .net] regular expression の正しい訳語を教えてください。
895 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 12:22:55.67 .net] 今ごろ聞いても馬鹿にしか見えませんよ?
896 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 12:36:00.41 .net] 今頃って最初から聞き返されてるじゃん何いってんのコイツ
897 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 12:59:00.89 .net] 「教えてくださいといって聞かないと」と言われてからそう聞き直しても馬鹿にしか見えませんよ?
898 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 13:44:27.82 .net] >>887 こういう気持ち悪いのはだいたいFreeBSDユーザー
899 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 13:48:57.65 .net] >>888 こういう気持ち悪い偏見を持ってるのはだいたいLinuxユーザー
900 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 14:14:59.03 .net] で、適切な訳語ってなんなの? それとも、馬鹿に見えた相手には教えちゃ駄目な宗教にでも入信してるのかな。
901 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 14:28:45.17 .net] こういう誤訳に反応するのはだいたいNetBSDユーザー
902 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 16:15:23.61 .net] けっきょく正しい訳語言えないのね。
903 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 16:28:21.90 .net] 訳語は訳者の著作物だからなぁ。こんなところに書いて権利放棄したくないし。
904 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 16:48:08.97 .net] どんだけ高尚な訳語が出てくるのが楽しみだから、論文でも書いてどっかで発表してからまた来てくれ
905 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 18:01:17.16 .net] 翻訳に関して世界一頑張ったのは日本人なんだって、どこかで読んだな。
906 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/01(日) 18:54:28.33 .net] 表意文字使ってるから頑張れば単語レベルで訳して意味を振れるんだよな。 カタカナ英語の乱用が白い目に見られるから訳せる分は訳そうとしたり。 中国とかはどうなんだろ?
907 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/04(水) 00:29:16.48 .net] レギュラーエスプレッソ
908 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/08(日) 10:36:43.20 .net] regular 正則 normal 正規
909 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/09/01(月) 20:44:42.15 .net] >>896 正規表現は正則表達式。 正規分布は正態分布。 正規化は規範化。 非正規社員は臨時工。
910 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/09/25(木) 21:32:43.40 .net] 関西弁に反応する?正規表現 # 暇な人、できたら修正してやって下さい # chaika 等で利用する目的の為、JavaScript の正規表現です # spawned at 2ch.net/unix/正規表現 # peace.2ch.net/test/read.cgi/unix/1039165754/900 # news4vip/1395152022/ を参考にしました # Rev.001 (?: [^い]や| や(?:[でわろ]|ねん|んか|んけ|けど|ない|んけ)| るで|とるわ|[わが]な )w*[、。?!\s]| アホ|あほ|ホンマ|ほんま|アカン|あかん|ええで|なんでなん| ええ(?:やろ|やん|な|わ)| ちゃう(?:か|やん)| でき(:?ん|ひん)| (?:しとる|ない|よる)ねん| (?:変わ|分か?)らん| 言うたかて
911 名前:名無しさん@お腹いっぱい。 [2014/10/16(木) 20:19:07.96 .net] 世紀表現とワイルドガードの違いを一言でゆうと何になりますか?
912 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/10/16(木) 22:11:18.07 .net] >>901 聖飢魔II
913 名前:名無しさん@お腹いっぱい。 [2014/10/17(金) 05:10:53.04 .net] 双生児
914 名前:名無しさん@お腹いっぱい。 [2014/12/07(日) 09:12:49.01 .net] ネタない?
915 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/16(金) 17:48:43.41 .net] |tac|sed -n '/./,/.\n/p'|tac|sed -n '/./,/.\n/p' これは標準入力の中の上下の無駄な改行を全て削除します perlの正規表現でやるならどう書けばよろしいでしょうか?
916 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/16(金) 18:15:48.11 .net] ム板で聞いた方がいいんじゃね
917 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/16(金) 23:09:51.63 .net] >>905 (・∀・)アッテルカナ? (・∀・)もっと別の書き方も見てみたい perl -0777 -pe 's/\A\n+//s; s/\n+\Z/\n/s'
918 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/17(土) 07:12:32.01 .net] (・∀・) $ デナク /.\n/ デアル理由ガワカラナイケド、コウ解釈シテ、カイテミタ (標準入力の)複数行テキストの始まりと終わりの連続した改行を、削除する (・∀・) Unix板コソ正規表現ニフサワシイト思ッテイマス sed -e '1{:a;/^\n*$/{N;ba;};s/\n*//;};:b;/^\n*$/{${/^\n*$/d;};N;bb;}' (・∀・) オ!自分デモ使イソウナノデ、ホゾンシトコウ sed -e ' 1 { :loop1; /^\n*$/ { N; b loop1; }; s/\n*//; }; :loop2; /^\n*$/ { $ { /^\n*$/ d; }; N; b loop2; } ' (;・∀・) 間違ッテタラ、オシエテクレ
919 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/17(土) 09:20:21.90 .net] (・∀・) この部分が $ d; だと何故か動かなかったので (・∀・) あえて /^\n*$/ を入れてたけど、動くみたいなので訂正 $ { /^\n*$/ d; }; @@ -10,9 +10,7 @@ :loop2; /^\n*$/ { - $ { - /^\n*$/ d; - }; + $ d; N; b loop2; } (・∀・) url抜キデ、ブログニ貼ラナイデネ
920 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/17(土) 15:54:44.86 .net] perlって面倒くさいんだね。Nコマンドで最終行が無くなったりしないの? sedだったら、行頭と行末の間に何もない行は削除、という感じで /^$/d これだけなんだけど。
921 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/17(土) 19:19:41.25 .net] (・∀・) 元々ノオ題ハコレ(先頭ノパイプハ除イタ) tac|sed -n '/./,/.\n/p'|tac|sed -n '/./,/.\n/p' (・∀・) 合ッテルカドウカ分カラナイケド、 (・∀・) tac デヒックリ返シタリスルノヲ止メ sed 一発ガ、コレ(修正前) sed -e '1{:a;/^\n*$/{N;ba;};s/\n*//;};:b;/^\n*$/{${/^\n*$/d;};N;bb;}' (・∀・) perl ダトコレ perl -0777 -pe 's/\A\n+//s; s/\n+\Z/\n/s' (´・ω・`) >>910 空行削除ノ話? sed -e '/^$/d'
922 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/18(日) 02:13:00.56 .net] あ、ごめん、「無駄な改行」を「空白行」だと思い込んじゃったわ。 「無駄な改行」をスクリプトが判断してくれるの? あ、いやいや、わかんないことに首つっこむのは止めるわ。ごめんね。
923 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/18(日) 07:11:53.40 .net] (・∀・) >>912 イエイエ。アリガチナ事 (・∀・) 所デ、書イテハイナカッタケド、一気ニ読ミ込ムナラ、perl 同様ナ書キ方モ出来ル sed -e ' :loop; $! { N; b loop; }; s/^\n*//; s/\n*$//; '
924 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/18(日) 21:21:15.59 .net] Thanks to (・∀・) ありがとうが何日間か送れなくて申し訳なかったです
925 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/19(月) 12:37:39.32 .net] while (<>) { $myline .= $_; } $myline =~ s/\A\n+//mx; $myline =~ s/\n+\Z//mx; print $myline; perlはよく分からないけど \A と \Z で最初と最後にアンカーおろして \n+で指定すれば簡単か
926 名前:名無しさん@お腹いっぱい。 [2015/01/30(金) 07:35:17.36 .net] >>915 \Zじゃなくて\zかな。\Aはあってる。
927 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/30(金) 10:29:28.40 .net] 無条件で、テキストの終わりの連続した改行を取り除けば良いという訳では無く text\n text\n \n \n \n とあれば、最後の3つの \n を取り除いて出力するのが、望ましい動作 一方で行末に
928 名前:\nが無いものに改行を付けてしまうのも、望ましくない ...と思う text\n text [] [ここ壊れてます]
929 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/01/30(金) 12:13:26.39 .net] >>917 s/\n+$/\n/
930 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/04/21(金) 08:12:15.25 .net] strを含むがstringを含まない ^(?!string).*(?=str).+$ これ、先頭の^と最後の.+$が必要な理由をだれか教えてくだんそん。
931 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/04/23(日) 21:05:41.03 .net] そもそもその正規表現の意味が違う気はするけど それは置いといて、^は行頭、$は行末
932 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/20(木) 07:30:01.68 .net] Jane Styleで。。。はOKで。。をNGにしたいんですが、教えてください。
933 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/20(木) 09:34:21.63 .net] (?<!。)。。(?!。) 知らないけど
934 名前:921 mailto:sage [2017/07/20(木) 13:11:41.43 .net] ありがとう。所詮俺には無理なことも分かりました。
935 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 17:01:00.66 .net] ^/FIRST/(.*)/SAMPLE$ この正規表現がどんな意味しているか知りたいです。 これってどんなURLがマッチしますか?
936 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 17:34:05.56 .net] /FIRST//SAMPLE /FIRST/あ,い.う;え:お/SAMPLE /FIRST/くぁwせdrftgyふじこlp/SAMPLE () がメタ文字なら
937 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 17:50:44.54 .net] nginxのコンフィグの話ならnginxスレで続けた方がいいよ
938 名前:924 mailto:sage [2017/08/01(火) 21:05:47.63 .net] >>925 ありがとうございます。 FIRSTとSAMPLEの間(一つのディレクトリ)は改行コード以外ならば全部マッチするんですね。 ()で囲むと後方参照…、 /で囲まれてSAMPLEで終わって参照される? これがわからなかったんです。
939 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/06(水) 06:09:37.08 .net] ABCとDEF という単語を両方含むレスをNGにする事はできますか? ABCだけが含まれるレスとDEFだけが含まれるレスはNGにせず、両方含まれる場合だけNGにしたいです
940 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/06(水) 09:49:56.44 .net] ABC.*DEF DEF.*ABC とかそういう話?
941 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/06(水) 19:10:16.65 .net] マルチ注意
942 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/06(水) 21:11:53.55 .net] そういうときはどことのマルチか書かないと fate.2ch.net/test/read.cgi/ios/1494717956/150
943 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/06(水) 23:54:46.66 .net] 純粋になぜ複数のスレに同じ内容のレスをしたらダメなのかわからないのですがマナー違反なのですか? 荒らし行為がダメなのはわかりますけどただの質問ですし誰も傷つきませんよね? またマルチですが・・と前置きすれば許されるものなのでしょうか
944 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 03:43:15.10 .net] お前は時間が節約できる、よりいいレス集まるとでも思ってるかも知らんが、相手のことを何も考えないクズ
945 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 04:23:07.36 .net] 自分も見かけた事あるから気持ちはわかるよ べつになんとも思わなかった 荒らしはむかつくけど 知りたい事があるなら合理的な行動だと思うしべつに同じ内容を連投する訳でもないからなんとも思わない
946 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 04:23:31.36 .net] >>933 腹が立ったの? いらついたの?
947 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 04:24:16.00 .net] >>933 同じ人がレスしたんだなぁって思うだけ 自分がもし答えられたらどれかのスレで答えるただそれだけ
948 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 04:26:07.09 .net] 明らかに迷惑なものとそうでないものとわかるだろw
949 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 07:53:41.36 .net] >>932 板やスレを分けている理由に反する。全部集約して一つのスレで良いだろう、それを許容するなら。 それに君は自分のことだけ考えてそう思ったのかもしれんが同じ事を考えた一万人が同じ事をしたら 答えのつかない同じ質問やバリエーションの異なる答えのついた質問があっちこっちに大量投下されることになる。 それって質問を装った荒しだよね。
950 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 08:00:25.53 .net] >>938 まぁ君の意見はわかったよ でも俺は効率を重視するんでなんと思われてもマルチやりますよ まぁ滅多にやる機会はないけどね 今までま3回くらいしかやった事ない なぜならそこまでして知りたい事(調べても答えが見つからない事)がなかなかないからね ちなみに前回もマルチ云々言われたのを覚えてるよ ググってすぐにわかる程度の事なら マルチしないよ
951 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 08:00:57.11 .net] >>938 そんなにイヤな気持ちになるのが俺は理解できないけどねぇ
952 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 08:01:44.47 .net] 正規表現関連のスレ三つに同じ質問しただけなのに敏感すぎだろ
953 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 08:22:15.56 .net] >>939 好きにすれば良いと思うよ。 俺は君が質問したから答えただけでそれ以上の話ではない。 その質問ここでする意味あったのかって気はするけど 早く答えがほしかったんだよね。ググったくらいで見つからないから質問したんだよね。 良かったじゃないか。何も問題は無いね。
954 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 10:54:38.94 .net] マルチする奴はクズ はっきりわかんだね
955 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 13:19:59.20 .net] 許容派が意外に多いのかと思いきや、3連4連レスしてるだけかよ
956 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 15:09:36.32 .net] 気に入らないなら無視すればいいのよ。
957 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 16:12:52.13 .net] まだ言ってるのかよw どうでもいいw
958 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 17:20:51.57 .net] どうでもいいならスルーしとけよw バレバレ
959 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 17:42:26.53 .net] >>946 マルチ云々はどうでもいいけど まだ言ってることはどうでも良くない だからレスした
960 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/09/07(木) 18:42:02.37 .net] 掲示板でマルチポストはなぜいけないの? ttp://www.ml-info.com/weekly/archives/2009/091024o.html
961 名前:名無しさん@お腹いっぱい。 [2017/09/07(木) 18:44:09.02 .net] まぁ今は2ちゃんの人口少なくてレスもこないからね
962 名前:名無しさん@お腹いっぱい。 [2017/12/29(金) 07:21:04.18 .net] 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 SALKY13WAM
963 名前:名無しさん@お腹いっぱい。 [2018/02/22(木) 17:17:52.73 .net] くこけ?
964 名前:名無しさん@お腹いっぱい。 [2018/05/22(火) 02:58:33.70 .net] 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 SW8Q2
965 名前:名無しさん@お腹いっぱい。 [2018/05/25(金) 21:24:33.00 .net] vimで最短マッチングを使って、csvの最後の要素をカットするにはどう書けばいいですか? 20分くらい試行錯誤してもわからず結局 %s/,[^,]*$// としたんですけどカッコ悪いです
966 名前:名無しさん@お腹いっぱい。 [2018/05/25(金) 23:13:21.91 .net] >>725 何か正規表現の入門書で良いものはありませんか?
967 名前:名無しさん@お腹いっぱい。 [2018/05/31(木) 14:08:36.59 .net] UNIXの正規表現の入門のような書籍がなかなかみつかりません perlの本に正規表現の説明が出てくるのですが、これはシェルで使う正規表現と同じなんでしょうか?
968 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/01(金) 00:39:38.00 .net] >>956 「シェルで使う正規表現」というと?
969 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/01(金) 10:27:04.50 .net] >>956 どのUNIXコマンドでも使える正規表現 https://qiita.com/richmikan@github/items/b6fb641e5b2b9af3522e
970 名前:名無しさん@お腹いっぱい。 [2018/06/04(月) 08:22:10.94 .net] >>958 ありがとうござい 参考になります
971 名前:名無しさん@お腹いっぱい。 [2018/12/21(金) 21:02:43.67 .net] bashで半角スペースの繰り返しを半角スペース1つに変換する正規表現で困っています。 ちなみに、sedなら何も問題なくできます。でもsedはプログラムを起動する分遅くなります。 bashの場合、次のように書くと、不完全ながらも空白スペースを縮めることはできました "${str// [ \{1\,\}]/ }" こいつを何回か繰り返すと連続スペースを1スペースにできるのですが、あまりに不細工すぎて、 何かまともな書き方はないでしょうか? 下のRep2Oneはbashで動作する、 str中、2回以上chrが連賊する箇所を1回に縮める関数です。 function Rep2One(){ local str=$1 local chr=$2 while : do str="${str//$chr$chr/$chr}" # echo "str = $str" if [[ ! $str =~ $chr$chr ]]; then break fi done echo "$str" }
972 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/12/21(金) 21:15:42.56 .net] シェルスクリプトのスレで聞いた方が良案が出やすいんじゃないの と思うけど
973 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/12/23(日) 01:31:47.78 .net] str="${str//$chr$chr$chr$chr$chr/$chr}" 1回目で大量に消せば高速
974 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:09.90 .net] おまんこ
975 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:12.37 .net] おまんこ
976 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:26.00 .net] おまんこ
977 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:27.30 .net] おまんこ
978 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:31.14 .net] おまんこ
979 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:47.48 .net] おまんこ
980 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:47.69 .net] おまんこ
981 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:22:52.52 .net] おまんこ
982 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:08.59 .net] おまんこ
983 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:14.62 .net] おまんこ
984 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:23.31 .net] おまんこ
985 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:26.96 .net] おまんこ
986 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:38.23 .net] おまんこ
987 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:42.44 .net] おまんこ
988 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:53.50 .net] おまんこ
989 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:23:58.23 .net] おまんこ
990 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:09.32 .net] ぉんこ
991 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:13.82 .net] おまんこ
992 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:24.69 .net] おまんこ
993 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:30.02 .net] おまんこ
994 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:45.01 .net] おまんこ
995 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:50.48 .net] おまんこ
996 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:24:59.95 .net] おまんこ
997 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:05.89 .net] おまんこ
998 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:15.64 .net] おまんこ
999 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:20.89 .net] おまんこ
1000 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:30.79 .net] おまんこ
1001 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:35.59 .net] おまんこ
1002 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:46.53 .net] おまんこ
1003 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:25:51.25 .net] おまんこ
1004 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:02.32 .net] おまんこ
1005 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:07.32 .net] おまんこ
1006 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:17.40 .net] おまんこ
1007 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:23.80 .net] おまんこ
1008 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:33.86 .net] おまんこ
1009 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:38.84 .net] おまんこ
1010 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:53.77 .net] おまんこ
1011 名前:名無しさん@お腹いっぱい。 mailto:soko [2019/03/15(金) 05:26:54.10 .net] おまんこ
1012 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 5942日 11時間 17分 40秒
1013 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています