1 名前:正規表現 mailto:正規表現 [02/12/06 18:09] 正規表現
460 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:17:13] まことに勝手ながらこちらで続けさせてください 質問を改めます やりたいことは ----------------------- 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
461 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:22:35] >>460 grep と言ってもいろいろあるんだが どの OS のどの grep よ。
462 名前:456 mailto:sage [04/12/17 11:23:16] ↑修正します 修正前)上と下の違いは、前後にスペースを含む" / "が存在するか否かです 修正後)上と下の違いは、単語 / が存在するか否かです
463 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:27:31] >>460 > 上と下の違いは、前後にスペースを含む" / "が存在するか否かです 1) と 2) には存在しないようだが。
464 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:28:10] >>462 「単語」とは?
465 名前:名無しさん@お腹いっぱい。 [04/12/18 00:00:37] ブラケットの中でピリオドを入れる時ってメタキャラクタとして扱われますか? [\w.] と [\w\.] が同じ動きにになるみたいなんですけど・・・。 ちなみに、パールです。
466 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/18 02:48:16] >>465 「みたい」じゃなくてテストコードで示してよ。
467 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/18 08:58:34] どの言語の正規表現がどんな有限オートマトン使ってるという情報って どこかにありますかねぇ。正規表現コンバータ作ろうかと思ってるのですが。。 NFA、DFAの違いぐらいは詳説正規表現の本でわかるのですが、実装ともなると。 オートマトンの変換に関してはコンパイラの本を参考にしてますが、 やはりかなりつらいものがありますね。たんに字句解析して作った方がいいのかなぁ。
468 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/18 09:16:42] 普通にNFA+DFAでいいじゃん
469 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 02:13:26] オブジェクト指向正規表現の仕様策定はまだですか?
470 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 14:44:45] >>469 聞いたことないな。 何それ?
471 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 19:26:19] >>469 まかせた。
472 名前:名無しさん@お腹いっぱい。 [04/12/22 19:35:55] お前ら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つのコレクションが取得できるの?
473 名前:472 [04/12/22 19:38:29] *? つーのは最短一致という便利なキーワードなのか。 つまらん質問失礼しますた。
474 名前:名無しさん@お腹いっぱい。 [05/01/07 22:21:40] 下がってるので、どれ一つ、とんちでも。 rubyでは /aa+??/ =~ "a" => 0 emacsでは "aa+??" =~ "a" => nil さて、こうなってしまうのは、各々がどのようなオートマトンで 解釈されているからでしょうか。
475 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/08 07:36:53] emacsって最短マッチあんの?
476 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/08 11:15:48] ありましゅよー ttp://www.cs.huji.ac.il/support/emacs/elisp-help/elisp-manref/elisp_34.html でも、{m,n}? の最短マッチはないみたい…。
477 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/11 11:11:46] 最短マッチに対応した grep ってある?
478 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/11 13:31:51] >>477 grep が最短マッチに対応してるかどうかが問題になるケースってある?
479 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/30 22:46:31 ] [^ま]*まってかくのめんどくさい
480 名前:名無しさん@お腹いっぱい。 [05/02/26 05:47:57 ] あげ
481 名前:名無しさん@お腹いっぱい。 [2005/03/30(水) 02:33:49 ] up
482 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/04/19(火) 17:08:07 ] 正規表現の実装っていろいろあることにやっと気づいた漏れorz
483 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/14(土) 15:12:25 ] ほしゅ
484 名前:名無しさん@お腹いっぱい。 [2005/05/16(月) 16:51:45 ] abc xyzをaxbyczにしたいのですが
485 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 17:05:02 ] s/abc xyz/axbycz/g
486 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 19:33:57 ] ワロタ
487 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 19:34:25 ] 保守
488 名前:名無しさん@お腹いっぱい。 [2005/05/17(火) 22:45:20 ] >>484 echo abc xyz |sed -e "s/^/%/; :ll; s/[%]\(.\)\(.*\) \(.\)\(.*\)/\1\3%\2 \4/; tll; s/%//;"
489 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/18(水) 00:13:40 ] うひょー
490 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/05/28(土) 03:19:18 ] うに厨として、% をめぐる動きに溜息出た…真剣にありがと 何重にも目が覚めた
491 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/28(土) 05:32:41 ] abc xyz でも abcdefg ABCDEFG でもできるね。すげーや。
492 名前: ◆2fmGY.thDg mailto:sage [2005/06/02(木) 22:17:25 ] a
493 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/04(土) 23:07:23 ] ('A`)
494 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/19(日) 02:53:08 ] Onigurumaを使っているんですが、 あるテキストデータがあります。 ----- ここから END 注釈 ○○○ 注意 △△△ 補足 ◎◎◎ TITLE ----- ここまで という部分の、ENDの後の空白行からTITLEの前の空白行の部分(間の行)を削除して、 ENDとTITLEの間は1行だけの空白行にしたいです。 「END\s^[0-9a-zA-Z。-゜ぁ-んァ-ヶ亜-?]*\sTITLE」を指定してもマッチしないんですが、 これは私の正規表現の式が間違えているんでしょうか? (複数行を1度に選択する方法を間違えている???)
495 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/19(日) 03:13:31 ] >>494 つーか、正規表現だけ見せられても判断できないと思うんだけど。 改行処理や文字コードのオプション設定はどうしてるかとかいろいろ情報が足りない。
496 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/07/13(水) 09:25:56 ] 素直に、 ~s/END(\s*.*?\s*)TITLE/END\n\nTITLE/sg; じゃダメ?
497 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/13(水) 13:15:24 ] >>496 Oniguruma の質問なわけだが?
498 名前:名無しさん@お腹いっぱい。 mailto:ほしゅsage [2005/07/13(水) 17:54:26 ] …とは思ったのだが、Perl 互換らしーから、いーかなとw てか、見つかるのむちゃくちゃ早いなww 事後ながら、oniguruma (ライブラリ)取りに行った
499 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/13(水) 19:58:46 ] >>498 > 見つかるのむちゃくちゃ早いなww どういうこと?
500 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/17(日) 23:17:41 ] >494 > 「END\s^[0-9a-zA-Z。-゜ぁ-んァ-ヶ亜-?]*\sTITLE」を指定してもマッチしないんですが、 > これは私の正規表現の式が間違えているんでしょうか? > (複数行を1度に選択する方法を間違えている???) これのどこが、複数行を一度に選択しているの?
501 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/19(火) 19:22:13 ] >>500 ONIG_OPTION_MULTILINE (や REG_NEWLINE や RE_OPTION_MULTILINE など) をセット しているかどうかで複数行選択できるかどうか変わるので、 そのへんを晒せばもうちょっと状況がわかると思うのだが、 元質問者はもう既にどっかいっちゃったのだろうな。
502 名前:名無しさん@お腹いっぱい。 [2005/09/21(水) 20:57:28 ] 正規表現で ○○ か ○○の場合と言うのはどう表現するのでしょうか? Cで言う、 || のようなものです。
503 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 21:07:45 ] テンプレに何もないんだなこのスレ。 このあたりで調べろ www.kt.rim.or.jp/%7Ekbk/regex/regex.html
504 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 21:18:44 ] \(>∀<\) キャー
505 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 21:58:13 ] (;`∇´))))))))))) \(>∀<\) キャー
506 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 22:48:45 ] 俺ならこう→「\(○{2}\) か \1の場合」
507 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/21(水) 23:46:20 ] 何気に正規表現本もラッシュだな。
508 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/22(木) 00:19:11 ] \([^ ]∀[^ ]*\) AAみたいな正規表現を作りたいが難しい。
509 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/22(木) 02:52:41 ] つくれてるやん!
510 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/23(金) 23:15:15 ] ∀ がメタキャラになってくれると楽しいかも
511 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/26(月) 20:32:51 ] дも
512 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/28(水) 14:54:06 ] ネタキャラ
513 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 01:04:17 ] 純粋に興味の問題なんだけど、 「ある文字集合の要素が各1回ずつしか出現しない」という文字列は 正規表現で表現できる? 例えばA, B, Cの文字からなる言語を考えたとすると、 ABC ACB BAC BCA CAB CBAの6つの文字列にマッチする表現っす。
514 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 01:08:23 ] 文字集合の濃度が有限なら 単に | でつなげばいいな。
515 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 02:30:43 ] いろは歌とか"a quick brown fox..."みたいなのにマッチさせる正規表現、 って書けば説明が早かったかもですね。 >>514 ひらがなの場合で47!個、アルファベットの場合で26!個の文字列を |でつなぐってことになると思うんですが、やはりこれしか方法ないんですかね。 正規表現の長さは… アルファベットの場合でも約1京テラバイトか… orz
516 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 09:42:38 ] >>513 [^A]*A[^A]* ではどうよ
517 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 09:53:24 ] >>516 BBA にもマッチしちゃうんでは。
518 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 09:57:44 ] >>515 > "a quick brown fox..."みたいなのに o 2回出てるよ。 実用を考えたら正規表現以外でやった方がいいな。
519 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 19:50:27 ] いろは歌って内容も傑作だよな。
520 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/09(金) 21:53:37 ] > o 2回出てるよ。 おお、32年生きてて初めて気が付いたっす。漏れの目はfusianasanさんだ… orz > 実用を考えたら正規表現以外でやった方がいいな。 そうことになっちゃいますかね。みなさんレスどうもでした。
521 名前:名無しさん@お腹いっぱい。 [2005/12/11(日) 08:09:16 ] Windowsで正規表現にマッチする文字列のみ(行全体じゃなく)を表示・保存するにはどうすればいいのでしょうか? xyzzyとかのエディタのgrepでやろうとしたのですが、検索してもよくわかりません。 Rubyとかスクリプト言語を使わないと無理でしょうか?
522 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/11(日) 08:13:57 ] 上すいません。書きこむスレ間違えました。(プログラム板の正規表現スレに書きこんだつもりでした。)
523 名前:名無しさん@お腹いっぱい。 [2005/12/11(日) 11:19:25 ] ちょうど一回出るんなら何かの順序でソートして文字列が完全一致することをチェックかなあ
524 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 11:16:33 ] エディターの正規表現で置き換えをしたいんですが・・・ 1、2、3、・・・という連番を (1) (2) (3)というふうに置き換えたいのですが どうしたらよいでしょうか。
525 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 11:57:28 ] まずは(ry
526 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 12:39:56 ] 置換元:[1-9] 置換先:(\0) で、できるかもよ。
527 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 17:30:57 ] >>526 だめでした。
528 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 19:50:58 ] 置換元:[1-9][0-9]* 置換先:\(\0\) こんな風にすればできるのかな? どんな風に駄目だったかわからないけれど。
529 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 20:02:16 ] >>528 それもやってみましたが、検索はされるのですが、 置き換えが出来ません。(0)となってしまいます。 前回のは(となってしまいます。 エディターだから駄目なのでしょうか。
530 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 20:09:51 ] \0のところを、 \1 $1 にしても同じかな?
531 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 20:13:18 ] >>530 ($1)となってしまいます。
532 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 20:17:25 ] そのエディタの正規表現がreference(\1とか$1とか)をサポートしてないに1票。
533 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 21:27:04 ] !(^^)!ピンポーンです。 ヘルプを見ていたら、referenceはサポートしていないと出ていました。 他のエディターを探すか、どうしたらいいでしょうか。
534 名前:名無しさん@お腹いっぱい。 [2006/01/01(日) 23:17:07 ] 続きです 結局QXエディタをダウンロードして使いました。 びっくりしたのはWindows上では 正規表現というのは全然一般的ではないんですね。 勉強しようにも正規表現サポート自体が脆弱だったんですね。
535 名前: 【大凶】 3回目 mailto:sage [2006/01/01(日) 23:32:29 ] ググればなんぼでも出てきます。少し自分で考えなはれ。
536 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/03(火) 22:49:27 ] まあやることがハッキリ決まってるんなら、 (念の為)対象ファイルのカレントディレクトリのDOS窓を開いてsed、だな。
537 名前:名無しさん@お腹いっぱい。 [2006/01/07(土) 07:00:27 ] {aaa}[bbb}{ccc} という文字列から、aaa bbb cccをそれぞれマッチさせてとりだしたいので、 /¥{(.*)¥}¥{(.*)¥}¥{(.*)¥}/ としていましたが、 とりだしたい文字列のなかに、さらに{}がはいっていることがあることが わかりました。 {aaa}[b{b}b}{ccc} とか。 それぞれaaa b{b}b cccというかたちでとりだしたいのですが、どうしたものでしょうか。
538 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 10:07:50 ] >>537 sedはそのままでok
539 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 14:56:41 ] グループ化用のカッコにエスケープが必要だからsed「では」ダメじゃないの? Perlならエスケープ不要なので大丈夫。 ところで>>537 はテクニシャンだな。 navi2chで円マーク(¥じゃないほう)を表示させやがって…
540 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 15:36:35 ] >>539 ヒント:}{
541 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 15:46:46 ] いや、それは分かってるつもりだけど。 sedだと例えば{(aaa)}{(bbb)}{(ccc)}にマッチしちゃいますよってこと。
542 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 17:31:15 ] >>541 じゃあ不必要な{}()を最初にスペースに変換してからマッチさせたら
543 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 18:58:38 ] そんな必要ない。sedでも>>537 のカッコをすべてエスケープすれば良い。 >>538 の「sedは」というのが余分だっただけ。
544 名前:名無しさん@お腹いっぱい。 [2006/01/12(木) 05:55:00 ] 郵便番号をPHPで「1234567」から「123-4567」へ整形する正規表現を教えて下さい。
545 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 11:06:51 ] >>544 【PHP】質問スレッドpart32【php】 pc8.2ch.net/test/read.cgi/php/1136276300/
546 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 16:59:36 ] すいません。 -------------------------------- #hogehoge fugafuga 1 -------------------------------- という風に行頭が#じゃないというのを正規表現で取得したいのですが 「ではない」というのが分かりません。 bashを用いております。 以上 ご助力をお願いいたします。
547 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 20:50:59 ] >>546 grep -v '^#'
548 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 21:08:39 ] >>546 grep '^[^#]'
549 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 21:29:57 ] いつも思うけど、 [^#] 形式だと文字が存在してないときも除外してしまうので 面倒なことあるよね。 ディレクトリリストから . .. を除外しようと [^.][^.].* を使って一文字のファイル見逃すとか。
550 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 21:47:30 ] >>549 その方が便利なこともある。
551 名前:544 mailto:sage [2006/01/16(月) 17:54:29 ] ご教授ありがとうございます。 本当に助かりましたっ
552 名前:名無しさん@お腹いっぱい。 [2006/01/22(日) 02:37:32 ] 正規表現の正規表現ってどうかきますか? ある値が正規表現の構文に沿っているかどうかを調べたいとき。
553 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 02:48:16 ] 入れ子があるから正規表現にはならない。 BNFを書けば3型文法に属さないこと分かるでしょ。
554 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:22:53 ] いきなりすんません 2ちゃんねるブラウザ Jane Doe Style で正規表現検索を使おうとしたけど、書き方がいまいち分かりません。 F900i という文字列だけを検索して F900is や F900iT はヒットさせないようにするには、どう書けば良いですか ぐぐってもいまいちわからないので。。。。
555 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:25:48 ] 板違い。
556 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:32:56 ] スマンです。でもスレタイ検索してもほかに質問できそうな場所なかったんけどだめですか。 UNIX 085 正規表現 (553) プログラム 408 正規表現part2 (102) プログラマー 283 【Regular】正規表現【Expression】 (36)
557 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:36:10 ] 板違い。
558 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:49:12 ] 逝
559 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 13:16:13 ] >>554 Jane Doe Style とやらがどんな正規表現エンジンを使っているかにも 激しく依存する話なので、 まずはそのソフトのスレで聞いてみた方が良いと思う。
560 名前:名無しさん@お腹いっぱい。 [2006/04/15(土) 16:30:37 ] (・∀・)
561 名前:名無しさん@お腹いっぱい。 [2006/04/18(火) 03:51:57 ] onigruma... 気になる。名前が怖い。
562 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/18(火) 09:54:32 ] nekoguruma だったら弱そうだしな
563 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/02(火) 22:56:16 ] >>562 いろいろ運べそうじゃないか
564 名前:名無しさん@お腹いっぱい。 [2006/05/29(月) 20:29:06 ] 正規表現厨には grep --color
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/31(水) 19:33:06 ] 勉強ついでに554を考えてみた。精度に難がありそうですが、以下でどうだろう? [^A-Zz-z0-9]*F900i[^A-Za-z0-9]*
566 名前:成瀬 ◆NBGqNARUSE mailto:sage [2006/06/16(金) 03:35:29 ] >>565 最低限試そう。"F900iS"=~/[^A-Zz-z0-9]*F900i[^A-Za-z0-9]*/ はマッチする。 ヒント: \W \b 否定先読み
567 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/07/25(火) 12:40:49 ] ... Doll ←ここから \=\-\--\-``--`\=`-==\ \=-\=-\``\==`=`--`-=- Egg -=-\-=-\-\=-=--\=-=-=\ -=-\-=-=\=-=\=-=-\-=\- ←ここまで Fruits ... のときDoll〜Eggの項目まで抽出するにはどうしたらいいですか? /Doll/,/Fruits/ でおおまかには抽出できるけどもっと正確に抽出したいのです
568 名前:名無しさん@お腹いっぱい。 [2006/08/09(水) 21:11:53 ] 『詳説 正規表現 第3版』 が今月発売されるね。 邦訳版の出版は知らんけど。
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/10(木) 13:32:24 ] 情報サンクス。 けど、洋書なら原書のタイトル表記でよろしく。 早とちりして必死で oreilly.co.jp と amazon.co.jp 探しちゃったよー。(←あほ)
570 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/10(木) 21:53:00 ] >>569 www.oreilly.com/catalog/regex3/index.html わざわざ、邦訳版の出版は知らんって書いたのになw
571 名前:名無しさん@お腹いっぱい。 [2006/08/18(金) 16:48:08 ] oraclesqlpuzzle.hp.infoseek.co.jp/regex/index.html 正規表現の問題集らしい
572 名前:名無しさん@お腹いっぱい。 [2006/08/18(金) 17:01:57 ] >>568 作者宣伝乙、 というのは冗談で、情報ありがと。 日本語版はいつ出るんだろ。
573 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/23(水) 13:58:51 ] 立ち読みとか読んだうちに入らんと思われた。
574 名前:名無しさん@お腹いっぱい。 [2006/08/23(水) 17:31:35 ] >>177 oraclesqlpuzzle.hp.infoseek.co.jp/regex/regex-4-10.html こんなのもあるみたいやね
575 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/05(木) 15:46:12 ] age
576 名前:名無しさん@お腹いっぱい。 [2006/10/16(月) 10:51:27 ] ageとくか
577 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 01:00:23 ] 質問させてください。 正規表現を用いたgrepをするときに、 文字列"foo"を含まない全ての行にマッチさせるためには どのように書けばよいのでしょうか。
578 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 01:13:12 ] -v
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 08:26:14 ] man に書いてあるよ。
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 08:26:50 ] -v オプションを使わずに、正規表現上で「文字列"foo"を含まない」を表す方法を 聞いているんじゃないだろうか?
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 09:48:51 ] (?!foo)
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 11:12:35 ] >>581 今はgrepでの話をしてんだろ。
583 名前:名無しさん@お腹いっぱい。 [2006/10/17(火) 13:02:02 ] >>577 否定先読み
584 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 13:37:52 ] >>583 正規表現でできるものか! 先読み、後読み共に否定は貧弱
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 18:14:48 ] 「一致しない」はあらゆる箇所にマッチするからね 行単位の処理とは基本的に相容れないし 正規表現でなく、-vのようなメタレベルで対処するのが正解 sedとかでもいいな
586 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 19:17:42 ] >>585 なんで、.*?(?!xxx) を、xxxが一切含まない行、と解釈してくれないんですかね?
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 19:55:43 ] 論理的に考えてみればわかるよ
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/18(水) 09:59:12 ] >>587 欲張りマッチだから、xxxが見つかった段階で一文字戻ってマッチにしちゃう?
589 名前:名無しさん@お腹いっぱい。 [2006/10/18(水) 11:10:22 ] >>586 解釈するわけがない
590 名前:名無しさん@お腹いっぱい。 [2006/10/20(金) 10:45:16 ] ^(?!.*foo) でできるだろ pc8.2ch.net/test/read.cgi/tech/1156413899/l100 の1のサイトをよく読め
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 10:00:30 ] 正規表現でできることの仕様ってずっとこのままなんですかね。 括弧の対を考慮した表現とかって簡単にならないかな。
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 11:17:38 ] 処理系ごとに拡張してあったりするじゃん。
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 11:28:08 ] hp-uxのgrep糞だなw \< \>が使えん。
594 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 12:07:18 ] grepツールで、htmlのコメント内を検索対象からはずしてgrepできるツールありますか? コメントで死ぬほど引っかかって苦労してます。 複数行コメント中の真ん中ぐらいの行に引っかかっても、先頭に<!--がないから 普通のgrepツールだときびしいです。
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 12:13:02 ] sedしかないだろ。
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 12:24:01 ] -- の対応まで見ようとするとつらそうだ。
597 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 21:37:54 ] 複数行になると途端にわけわからんくなるな・・・。
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 05:24:59 ] 改行位置を変換する前処理をしてからやるとか
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 11:38:24 ] コメントを s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g で取り除いてからgrepすればいいんじゃね?
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 14:20:22 ] マルチで済まない。 同じ文字が3文字連続していたら表示したいのだが
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 15:02:08 ] >>599 >s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g この部分はsed? だったら、その後もgrepなんかせずに、sedだけで完結すればいいじゃん。 awkでも同じく。
602 名前:<sage> [2006/11/10(金) 19:30:45 ] 教えて下さい。 ダブルクオートで囲まれていない、コンマだけを置き換えたいのですが、 正規表現では、どうあらわせばいいのでしょうか? 例: "aaa, bbb" xxxx, "ccc, ddd" yyyyyy xxxx, <- このコンマを −> xxxx; とセミコロンにしたいです。 よろ
603 名前:名無しさん@お腹いっぱい。 [2006/11/13(月) 23:01:55 ] >>602 pc8.2ch.net/test/read.cgi/tech/1156413899/l100 のリンク先嫁
604 名前:<sage> [2006/11/14(火) 15:35:11 ] >> 603 そのページのどこを読めと?
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/22(水) 14:36:47 ] >>604 ほぼ全部 雑魚には無理な正規表現ってこった
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/22(水) 20:49:29 ] 氏ね
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/26(日) 13:47:54 ] >>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 これだけ読めば解決できるが 池沼には無理
608 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 14:18:49 ] アルファベットの文字で構成されるが、「d」は入らない、を [a-ce-z]以外の書き方で表現する方法はないですか? もちろん↓はエラーだけど、こんな漢字で書ければいいのだけれど。 [a-z][^c]
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 19:22:18 ] 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
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 22:02:59 ] >>608 javaならできる
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 22:08:51 ] d|i|g|i|t|a|l
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/05(火) 09:35:00 ] >>610 どうやるんだべさ?
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 02:45:07 ] >>612 [[a-z]&&[^d]] こんな感じだったと思う。
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 09:44:34 ] >>613 うぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ〜、すげぇ〜。できました! javaだとこんなのができるのか! もちろん正規表現標準じゃないので、perlとか秀丸正規表現ではできないかぁ・・・ javaならではの裏技って他に何かあるんですかね?
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 12:20:30 ] >>614 うぉ++
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 12:23:51 ] タイプ数増えてるのは問題ないのかw
617 名前:615 mailto:sage [2006/12/06(水) 12:51:07 ] >>614 わざわざjavaで試した行動力に感服 強欲マッチといわれる615もためしてみるといい
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 13:11:31 ] java使う人ならタイプ数が増えることが問なさそう
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 14:12:54 ] >>615 うぉ+でいいんじゃないの?なんか違うの?
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/06(水) 17:58:50 ] (+_+;)
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/07(木) 02:56:32 ] >>619 違うよ。++が付いたほうはバックトラックしない。 Perlの (?> ...) と同じ。
622 名前:名無しさん@お腹いっぱい。 mailto:saga [2006/12/16(土) 17:28:28 ] 1〜1000 までの数字から始まって最後が C] で終わる正規表現を教えて下さい m(_ _)m
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/16(土) 17:45:19 ] ^[0-9]\{1,4\}[^0-9]*C]$ かな?
624 名前:名無しさん@お腹いっぱい。 mailto:saga [2006/12/16(土) 17:55:45 ] >>623 駄目でしたorz 正規表現の勉強してきます。 有難うございましたm(_ _)m
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/16(土) 19:58:43 ] ^([1-9][0-9]\{0,2\}|1000)[^0-9]*C]$ こうか?
626 名前:名無しさん@お腹いっぱい。 [2006/12/17(日) 00:31:38 ] タイトル:文字列 の文字列の部分だけを取り出したいのですが、 どのような正規表現にすれば良いのでしょうか? よろしければ、ご教授を願います。
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/17(日) 00:34:12 ] いろいろ出ているようだけど [0-9].*C] ではダメな理由がわからない
628 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/17(日) 00:52:14 ] >>626 文..
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/17(日) 07:34:54 ] >>627 全然ダメ 0000C がヒットする
630 名前:名無しさん@お腹いっぱい。 [2006/12/28(木) 11:54:55 ] 初歩な質問ですみませんが [0-9a-zA-Z]で英数字にマッチするものとなると思うのですが 例えばajgko-jk-s1olのように「-」記号が入っているとマッチしません どう記述すればよいですか?よろしくお願いします。
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 11:57:12 ] >>630 [-0-9a-zA-Z]
632 名前:630 [2006/12/28(木) 12:01:22 ] >>631 さんありがとうございます。 しかし上記のように記述しても読み込んでくれません・・・。 こう記述して[-0-9a-zA-Z]{10,10} 「BC-K-o58tB」これを認識してくれません。
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:09:19 ] どのアプリ使ってんのよ
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:10:47 ] >>632 ちゃんとマッチするけど・・ ↓ $ echo 'BC-K-o58tB' | egrep '[-0-9a-zA-Z]{10,10}' BC-K-o58tB
635 名前:630 [2006/12/28(木) 12:11:07 ] アプリ?良くわかりませんが言語PHPです。
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:11:52 ] ならPHPのスレで聞いた方がいいんじゃね
637 名前:630 [2006/12/28(木) 12:16:40 ] PHPのスレで聞いたら正規表現に行けと言われました。orz
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 14:04:02 ] 無限ループキタ━━━━━━(゚∀゚)━━━━━━ !!!!
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 21:33:37 ] PHPだとPOSIX由来の正規表現とPerl互換の正規表現があるけどどっち? 後者を使っているならpreg_match('/[-0-9a-zA-Z]{10,10}/', $str)みたいに 正規表現の前後にスラッシュが必要。
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/29(金) 11:07:30 ] 正規表現 part 3 pc8.2ch.net/test/read.cgi/tech/1156413899/
641 名前:名無しさん@お腹いっぱい。 [2007/01/09(火) 23:17:53 ] 始めたばっかりで、3時間かかってもダメです… お助けを。 ()で囲まれる任意の文字部分だけをとりたいんですが、 \(..*\) では全然ダメですね… ()もついてくるし。 *****(ABC-_)(123%&)*****(あいう)*** 上の例だと、以下の3つを取りたいです。 ABC-_ 123%& あいう
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/09(火) 23:43:33 ] >>641 sed -e "s/(.*)/()/g" でどうよ
643 名前:名無しさん@お腹いっぱい。 [2007/01/10(水) 00:12:39 ] >>642 Unix版でしたね… Windows系でのやり方を知りたいです。
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 00:19:56 ] >>642 基礎からやり直せ。
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:41:33 ] >>642 なんか冗長だが... use strict; use warnings; while(<>){ s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g; print $_; }
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:42:28 ] >>643 Windowsにもsedは移植されてるじゃん。
647 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:59:51 ] >>643 板違い。
648 名前:名無しさん@お腹いっぱい。 [2007/01/18(木) 10:55:44 ] >>641 正規表現でググレカス
649 名前:名無しさん@お腹いっぱい。 [2007/02/07(水) 08:21:33 ] すみません、以下の正規表現は何にマッチするんでしょうか? ([\011\012\014 -~]+\\|\\(\\cj\\|\n\\)+\\) 処理系はLispです。お願いします。
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/08(木) 02:57:00 ] >>649 LispつかEmacs Lispだろ。先頭に \\ が抜けてないか? [\011\012\014 -~]+ タブかLFかCRかスペースかASCIIの表示可能文字の繰り返し \\| または \\(\\cj\\|\n\\)+ Cjって多バイト文字でいいんだっけ? か改行の繰り返し
651 名前:649 mailto:sage [2007/02/08(木) 15:45:20 ] >>650 すみません、おっしゃる通り先頭に\\が抜けていました。 なるほど、どうもありがとうございました。
652 名前:名無しさん@お腹いっぱい。 [2007/03/27(火) 16:10:01 ] コンマはエスケープする必要はありますか? We are NOVA-TOMO\, right?
653 名前:名無しさん@お腹いっぱい。 [2007/03/27(火) 17:34:57 ] 必要ないと思った。付けても問題ないと思うけど。 むしろ?の方が… 俺詳しくないから何ともいえないけど
654 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 01:44:02 ] カンマはどの正規表現でもメタ文字じゃないのでエスケープの必要はない。 むしろ >>653 のいうとおりで ? が要注意。 grep/sed ならエスケープなしでOK。 egrep/awk/perl その他Perl互換のものなら要エスケープ
655 名前:名無しさん@お腹いっぱい。 [2007/04/21(土) 22:17:17 ] 当方、秀丸を使っております。 “・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか? どうしても、「」で囲まれる前の文章もヒットしてしまうのです。
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/21(土) 22:55:33 ] >>655 秀丸とやらはUnixで動くのかい?
657 名前:名無しさん@お腹いっぱい。 [2007/04/21(土) 23:03:01 ] げ、UNIX版でしたか! 失礼しました。
658 名前:名無しさん@お腹いっぱい。 [2007/05/04(金) 12:21:16 ] ニフティーのドメイン以外を拾う為に [^nifty]\.com と書くのは間違いのようですが 特定の“文字列”以外を指定するのはどーすりゃいいの?
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 12:44:28 ] 否定先読みなどの拡張があればそれを使えばいいが、なくても それ以外の文字列をすべて列挙すればなんとかなります。
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 13:59:38 ] grep -v '特定の文字列' filename
661 名前:名無しさん@お腹いっぱい。 [2007/05/04(金) 14:35:47 ] 正規表現の話では? ([^n]....|.[^i]...|..[^f]..|...[^t].|....[^y])\.com これが正解
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:54:42 ] nifty.com以外のナントカ.comにマッチさせたいのだから、 ([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*)\.com ではないか?
663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:56:11 ] 無理に正規表現でがんばるより 他の方法を探した方がいい。
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:58:05 ] それではniftyhoge.comにマッチしないので ([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*|nifty..*)\.com
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 15:58:18 ] perlならもうちょっと簡単? perl -ne 'print if /(?<!nifty)\.com/' grep -v とか否定を使うほうが素直だと思うけど。
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 16:31:54 ] ヒネクレたひとたちばかりいるスレですから
667 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 16:44:04 ] このスレの中くらいは正規表現原理主義でいいじゃないか
668 名前:名無しさん@お腹いっぱい。 [2007/05/05(土) 00:26:33 ] その為のスレなんだから当然といえば当然だろ
669 名前:名無しさん@お腹いっぱい。 mailto:111111111111111111111111111111111111 [2007/05/21(月) 19:09:39 ] はふ
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 22:36:56 ] -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)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?
671 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:48:40 ] ここは実は分かってない奴しかいねーから無理じゃね?ww
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:05:12 ] >>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 $ ぐらいからはじめればいい。
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:44:17 ] 確かにみんなもっとスマートに書けないものかねえ・・・
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:31:04 ] ^([^\s]+)(.*)([^\s]+)$ $1 $3
675 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 03:06:51 ] (; ^ω^)
676 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 07:07:47 ] むしろ正規表現使わないでreaddirとstat使うとこじゃないか?
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 15:00:33 ] $ ls -al | sed -e 's/ \{1,\}/ /g' | cut -d ' ' -f 1,9 cut 使うのは反則?
678 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/30(水) 16:06:37 ] awk '{print $1,$9}' で十分では無かろうかと
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/01(土) 07:33:23 ] gawkでJavaソースファイル内の「識別子」単位の置き換えをしようとしていますが, なかなかうまくいきません. たとえば,独立して現れる「Stack」は「Queue」に置き換えるが, 「argStack」は別の識別子だから「argQueue」とは置き換えず そのままにしておくというものです. Javaの識別子は[_0-9A-Za-z]の文字だけから構成されるとしています. awk以外の選択肢も含めて,よい方法がありますでしょうか? 最終的には,Javaで置換プログラムを書けばできなくもないとは思いますが, 安直な方法があればお教えください.
680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/01(土) 08:57:42 ] \< \> で囲っておくとか。
681 名前:679 mailto:sage [2007/09/01(土) 19:15:56 ] grepの「-w」は普通にできるのに,いざ置換で同じことをしようとすると 難しいですね. 結局Javaで処理プログラムを書きました.ありがとうございました.
682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 09:09:36 ] hogeを含む行のうち^\s*'で始まらないもの をgrepするのにvimでは \(^\s*'.*\)\@<!hoge でできるようなんですが、サクラで (?<!^\s*'.*)hoge とするとダメでした。 これをgrepするにはどうすればいいでしょうか? サクラ(bregexp.dll)の正規表現はPerl5互換だそうなんですが。
683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 09:53:00 ] 板違い。
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 11:08:21 ] じゃあ hogeを含む行のうち^\s*'で始まらないもの にマッチするPerl5正規表現を答えよ。 とします。
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 11:28:24 ] ム板行け。
686 名前:情報工学ばが [2008/01/15(火) 20:48:47 ] 正規表現ってなんですか?
687 名前:情報工学ばが [2008/01/15(火) 20:50:24 ] はやく!!! 単位がないんです!!
688 名前:情報工学ばが [2008/01/15(火) 20:51:45 ] お願いします。。。
689 名前:わし [2008/01/15(火) 20:55:01 ] わしにはわからん。
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/16(水) 01:21:45 ] >>686 【サルにもわかる正規表現入門】 www.mnet.ne.jp/~nakama/
691 名前:名無しさん@お腹いっぱい。 [2008/01/16(水) 12:24:11 ] >>690 有難うございました。 おかげで単位取れそうやでー!! ほな
692 名前:名無しさん@お腹いっぱい。 [2008/01/17(木) 00:37:01 ] 語り手緊急募集中!! 坐禅と見性第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/
693 名前:名無しさん@お腹いっぱい。 [2008/02/24(日) 13:39:51 ] 2008-03 発売(予定) 「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳) ISBN 978-4-87311-359-3 定価 5,040円
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/24(日) 17:10:30 ] バイト代が全部本で消えていく・・・
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/24(日) 18:03:30 ] あるある
696 名前:名無しさん@お腹いっぱい。 [2008/02/26(火) 14:03:08 ] 2/1 XXXXXXXX 2/2〜2/5 XXXXXXXXX 2/7〜2/8 XXXXXXX 2/12 XXXXXXXXXX 2/20〜2/28 XXXXXXXXX と書かれた行があり 今日より以前の日付の行を削除するにはどうすればいいですか
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 15:50:38 ] それは正規表現の問題か?
698 名前:名無しさん@お腹いっぱい。 [2008/02/26(火) 17:23:03 ] Cの構造体のようにネストする可能性のあるものを正規表現で抽出するにはどうすればいいでしょうか?
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 17:26:13 ] 無理
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 21:47:00 ] >>699 正解
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 22:31:20 ] >>696 日付の切り出しを正規表現でやって、日付の判定以降はプログラムでがんばれ。
702 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 14:24:40 ] 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 にするにはどうすればいいですか
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 14:28:44 ] sed -e 's,/1/,/01/,' -e 's,/2$,/02,'
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:14:22 ] >>703 9日近く書き込み無いのによく質問に高速で答えられますね 尊敬するとともに変態だと思います。
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:15:08 ] 別に何日書き込みがなかろうが関係ない。
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 22:36:13 ] >>704 今時ブラウザでみてる奇特な人かな? 別にこのスレを毎日人手でチェックしてるわけじゃなくて、 専ブラの巡回リストに入ってるだけのことだと思うよ。 まあ、確かに4分でレスするのはちょっとすごいが よくよく見たら 2007/3/3 とかは変換しない... ほんとにそれでいいのか? >>702
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 23:43:20 ] >>703 もわざとその答えにしたんだろ。 要するに質問の仕方が悪いって事だ。
708 名前:ウサチャソ ◆/0IEZmXnQ6 mailto:sage [2008/03/17(月) 21:53:04 ] >>702 ゼロサプレス 正規表現 とか ゼロパディング 正規表現 とかでググってみるといいかモナー 最近sedは使ってないから漏れはやり方知らんw
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 14:24:00 ] どの文字列にもマッチしない正規表現ってどう書くんでしょう?
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 16:47:03 ] (?<=a)a
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 09:09:37 ] 空文字列にもマッチしない?
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 23:02:47 ] しないよ というか自分で試せよ
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/21(金) 00:44:43 ] 710って、aaにマッチするよ 戻り読みの位置が違うんじゃね?
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/21(金) 20:07:35 ] (?!a)a こうかな
715 名前:名無しさん@お腹いっぱい。 [2008/06/02(月) 10:30:14 ] Vimでファイルの中からhttpで始まり、htmlで終るURLを抜きだしたいのですが、 どのようにすれば可能でしょうか? いろいろと試してはいるのですが、行中の最大にマッチする等なかなかうまくできません。
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:38:21 ] 最短でマッチさせたらさせたで、 ディレクトリのどこかに .html があると破綻する
717 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 08:27:21 ] emacs(の置換)と perlのそれぞれで、 「日本語の文字列」を指定する正規表現が知りたいのですが、 どこを見ればよいでしょうか? 「ASCII文字を含まない文字列」でもOKです。
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 13:33:02 ] >>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::).
719 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 14:36:53 ] >>718 ありがとうございます。emacsのinfoではなく、 elisp infoにあるんですね。 「日本文字にはさまれたascii空白」を検索したかったので、 emacsでは"¥cj ¥cj" でだいたいよさそうです。 (どういうわけか [:multibyte:]や[:nonascii:] という指定は C-u C-s などではうまく動いてくれないようなのですが・・・ (ascii文字の一部にマッチしてしまう)
720 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 14:41:33 ] >>719 > (どういうわけか > [:multibyte:]や[:nonascii:] > という指定は > C-u C-s などではうまく動いてくれないようなのですが・・・ > (ascii文字の一部にマッチしてしまう) [[:multibyte:]] としんとだめやよ。
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 18:33:15 ] あ、そういうことか!どもです。
722 名前:名無しさん@お腹いっぱい。 [2008/09/04(木) 15:15:43 ] ttp://codezine.jp/article/detail/1573 やたら難しいのですが。 詳説正規表現を読めば、解けるようになりますかね?
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/05(金) 01:34:49 ] >>722 難しいか? それ。
724 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/18(木) 18:37:47 ] >>722 プログラミングperlの正規表現の解説部分を 読んでもなんとかなるかも(´・ω・`)
725 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/28(日) 20:34:23 ] >>722 詳説正規表現は文字通り「詳説」。 正規表現を使うことが目的の人にはヘビーすぎる。
726 名前:わいきむら [2008/10/20(月) 09:09:22 ] 空の文字クラス'[]'はどういう意味になりますでしょうか? あと'-'が文字クラスの最後にある場合もダッシュとマッチせよ という意味になるのでしょうか?
727 名前:わいきむら [2008/10/20(月) 09:12:46 ] すみませんダッシュじゃなくてハイフンですか
728 名前:船木康博 [2008/10/20(月) 09:14:08 ] さーてと、 パソコンに於ける衛生面についてカキコして、 とりあえずここらでアクティブソナーにQSYするかなー♪ ・VDT症候群に注意。 ・腱鞘炎に注意。 ・大音量による聴覚障害に注意。 マウスは玉の有り無しで、オスとメスがあるでよ。 光にも種類があるし、トラックボールもあるし。たまには玉の辺りの掃除でもしてやってくれ。 ボタンも林檎の1個や米窓の2個じゃなくて、SUNあたりなら3個あったんじゃねぇかなぁ。 最近じゃあ、ホイールも回転方向以外に左右に振れるのもあるでよ。 最後は、鍵盤だ。雑菌が繁殖して、便所より汚いモノもあるでなぁ。 病気移しちゃあいけねぇで、触らせる相手は自分で判断して制限しろよ。 おいもかはまぐり触った手かもしれねぇし、汁がとんでるかもしれねぇからな。
729 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/21(火) 02:39:30 ] >>726 中身が空の [] はわからんが、末尾のハイフンはその通り。 範囲指定じゃなくてハイフンそのものとして解釈される。
730 名前:名無しさん@お腹いっぱい。 [2008/10/22(水) 17:48:58 ] 質問させてください。 Fortranのコードから、「subroutine abc()」「 subroutine abs()」のような サブルーチンの開始行だけをgrepで抽出したくて grep ^\s*subroutine ./*.f90 と書いたのですが、「 subroutine」で始まる行がマッチしていないようです。 どのようにしたらこれをマッチさせられるか教えてください。 ちなみに、コード内には 「! subroutine abc()」「!subroutine abc()」なども含まれています。
731 名前:730 [2008/10/22(水) 19:23:26 ] >>730 どなたか、ほんとお願いします!!
732 名前:ウサチャソ ◆/0IEZmXnQ6 mailto:sage [2008/10/22(水) 21:00:29 ] >>730 ' とか " で括ってないとか? 話逸れるけど、grep は egrep が一番速いらしいよ。 egrep は「(・∀・)イイ!! 」grep! なんっつってw はぁ〜…
733 名前:730 mailto:sage [2008/10/22(水) 21:25:28 ] >>732 そのとおりでした。 grep "^\s*subroutine" ./*.f90 としたらうまくいきました、ありがとうございます。 .....なんでこんなことに.....orz orz orz
734 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/23(木) 03:40:28 ] 「(・∀・)イイ!! 」grep!
735 名前:名無しさん@お腹いっぱい。 [2008/11/08(土) 14:16:27 ] ムズいなこれ codezine.jp/article/detail/3039 codezine.jp/article/detail/2676
736 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/15(土) 20:26:45 ] 機能的にegrepのが遅そうな気がするけど
737 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/19(水) 14:37:34 ] >>735 正規文法(正規言語)には定義があるけど 正規表現に「数学的に厳密な定義」は存在しないと思うんだけどねー まあ>>51 でがいしゅつだったからどうでもいいや
738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 16:15:06 ] 教えていただけますでしょうか。 1(文字列A)文字列B というものを (文字列A)文字列B にするのはどう書けばよいのでしょうか。 文字列A、文字列Bとも長さは不規則です。
739 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:32:03 ] sed 's/^.//'
740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:38:33 ] すみませんが詳しい方のみ回答をお願いします
741 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 18:41:27 ] 日本語や英語など特定の文字列を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のいづれかとする。 お願いします。
742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 19:14:08 ] その質問は正規表現スレで扱う範囲を越えてます。
743 名前:名無しさん@お腹いっぱい。 [2009/05/18(月) 22:21:54 ] 8桁の10進数を文字列とみなしたとき、 下2桁が"00"でない文字列をヒットしたい。如何すればよいか?
744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/18(月) 22:33:28 ] [0-9]{6}[1-9]{2}
745 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/19(火) 08:56:24 ] [1-9][0-9]{5}([0-9][1-9]|[1-9][0-9])
746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 22:23:08 ] 正規表現でアルファベット6文字というのはどう書けばいいでしょう? [A-z][A-z][A-z][A-z][A-z][A-z] これじゃださいですよね?
747 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:42:14 ] [A-z]{6}
748 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:57:06 ] [A-z]だと[\]~_`を含むよ。[A-Za-z]{6}にしなはれ
749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 10:22:05 ] POSIX 正規表現が使えるなら [[:alpha:]]{6} とか。
750 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 10:29:36 ] POSIX文字クラスはロケール依存の罠があるから避けた方が無難と思う
751 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:21:52 ] POSIX 文字クラスって [[:isalpha:]] みたいのを言うんじゃなかったっけ?
752 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:23:34 ] おっとなんか馬鹿なこと書いてしまった。 [a-z] も locale でどうマッチするかかわったりするよ?
753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 13:28:45 ] ホント? \w とかなら変わると思うけど、 [a-z] は locale に依らず ASCII コードの範囲になるのでは?
754 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 02:14:08 ] 書き込み禁止されてた。 >>753 どのUNIXでもそうなるとは断言できないけど、locale が en_us.UTF-8 とかのときに a-z が aAbB….yYz な集合になるものもあるよ。 POSIX的には コード順だと定義はしてはいなかったはず。
755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 08:44:18 ] 文字列の範囲はロケールに依存する。例えば、エストニア語のアルファベット では、s の後に z があり、その後は t、u、v、w、x、y と続くので、[a-z] で はすべての小文字のアルファベットにマッチしない
756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 05:54:23 ] うふふ
757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 21:28:07 ] >>754 それはlocaleの問題でもOSの問題でもないだろ 例えばlgrepはデフォルトがcase insensitiveだし
758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/26(金) 17:56:44 ] >>757 問題が理解できてないようだな。君は話に加わらなくて良いよ。
759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/26(金) 18:09:55 ] それだけだとかわいそうなので補足すると、 >>754 が言ってるのは case sensitivity の問題じゃないよ。 >>754 のレスの「aAbB….yYz」をよーく目をこらしてみてごらん。 ロケールによってはこういう不思議現象が起こるのよという話。
760 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:38:46 ] ジオ落ちててonigurumaのソースが落とせん。 だれかミラー的なもの知らない?
761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:50:51 ] いや、あったは、ミラー。<mirrorservice.orgとか
762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/19(土) 19:50:17 ] ()内の、で区切られたものを 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'
763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/19(土) 19:51:30 ] こうやれば望みどおりの結果は出たのですが、 汎用性が低いのでもっとちゃんとしたのを作るにはどうしたらいいですか? #!/bin/awk -f BEGIN { FS="((|)|\\(|\\)|、| | +)" } { {print $1"("$3"、"$2$4")";} }
764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/05(土) 13:45:25 ] あ
765 名前:名無しさん@お腹いっぱい。 [2010/06/02(水) 05:32:30 ] ほ
766 名前:名無しさん@お腹いっぱい。 [2010/06/02(水) 17:20:06 ] 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