2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

正規表現

1 :正規表現:02/12/06 18:09.net
正規表現

2 :終了:02/12/06 18:27.net
終了

3 :名無しさん@お腹いっぱい。:02/12/06 18:47.net
/\s*終\s*了\s*/

4 :名無しさん@お腹いっぱい。:02/12/06 18:51.net
oreillyの本読めば全てに限りなく近く分る。よって終了。

5 :名無しさん@お腹いっぱい。:02/12/06 18:52.net
板地害

6 :名無しだよもん@カラアゲうまうま:02/12/06 19:00.net
http://www.oreilly.co.jp/BOOK/regex/

7 :名無しさん@お腹いっぱい。:02/12/06 19:05.net
釣り合いの取れた括弧にマッチする正規表現を教えてください。

()
((()))
((((()))))
(()())
((())(()()))

8 :名無しさん@お腹いっぱい。:02/12/06 19:12.net
正規表現ってFAだけで実装してるの?PDAも使うの?

9 :名無しさん@お腹いっぱい。:02/12/07 11:36.net
>>7
無い。


10 :名無しさん@お腹いっぱい。:02/12/07 20:44.net
(・)(・)
. .) (
( Y )

11 :性器表現:02/12/07 22:28.net
性器表現

12 :名無しさん@お腹いっぱい。:02/12/12 22:24.net
限界までgrepやればいい気持ち

13 :名無しさん@お腹いっぱい。:02/12/12 22:41.net
正則表現って訳してる本無かったっけ?

14 :名無しさん@お腹いっぱい。:02/12/13 09:51.net
詳説正規表現に正則表現という言葉が出てきた気がする

15 :はにゃーん☆ ◆ZoWSAKURAw :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 :名無しさん@お腹いっぱい。:02/12/16 08:16.net
でも、それ正規表現じゃないんじゃないの?
文脈自由文法のクラスでしょ?

17 :名無しさん@お腹いっぱい。:02/12/16 12:28.net
それ言ったら、今の「正規表現」なんてそもそもの定義から外れちゃうような気がするぞ。


18 :名無しさん@お腹いっぱい。:02/12/16 20:24.net
数学的文脈におけるいわゆる「正則な表現」だけで括弧の釣り合いにマッチさせるスレはここですか?

19 :名無しさん@お腹いっぱい。:02/12/16 20:43.net
ここは既に終了したスレです。

20 :名無しさん@お腹いっぱい。:02/12/17 03:36.net
いやん、正規表現がんばろー。
16>>
拡張正規表現で納得しろ。

21 :名無しさん@お腹いっぱい。:02/12/17 04:44.net
そもそも正規言語は数をかぞえられないんだから、
拡張正規表現でもないでしょ。

22 :名無しさん@お腹いっぱい。:02/12/17 19:24.net
拡張正規表現 = 「正規表現」の定義を拡張。;)


23 :名無しさん@お腹いっぱい。:02/12/17 20:22.net
>>20
言った方がいいかどうかわからんが
16>>
逆だ

24 :名無しさん@お腹いっぱい。:02/12/21 23:29.net
/^(U).\/*&_$&&*_@&(&*@+|@_(@)(?!<>)_##[o-Q](.*O+)&^&%^#)#+#$/


25 :おむこさん志望 ◆QtGqCwfDSA :02/12/22 00:23.net
いま glibc のマルチバイト回りをやってる人が書いたドキュメント
http://lc.linux.or.jp/lc2001/papers/dfa-i18n-paper.pdf
http://lc.linux.or.jp/lc2002/papers/hasegawa0918h.pdf

>>13
オートマトンで有名な本
http://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 :性器表現:03/01/11 12:17.net


29 :山崎渉:03/01/15 13:00.net
(^^)

30 :名無しさん@お腹いっぱい。:03/02/16 02:34.net
質問よいでしょうか・・・
英辞郎の読み仮名を削除したいのですが、
{(←全角です)ではじまり}(←これも全角です)でおわる文字列を
ごっそり置換したいのですが、どう表現すればいいのかよく
わかりません・・・・ おしえてくださいおながいします


31 :名無しさん@お腹いっぱい。:03/02/16 02:48.net
>>30
処理系は何?

32 :名無しさん@お腹いっぱい。:03/02/16 03:05.net
>>30
sed "s/{.*}//" < input > output
では駄目かい?

33 :名無しさん@お腹いっぱい。:03/02/16 06:36.net
>>32
その解は1行に複数の対が出てきたときに破綻する

34 :名無しさん@お腹いっぱい。:03/02/16 12:28.net
>>31
入れ子になっていない、かつsedが日本語に対応しているならば
s/{[^}]*}//
というパターンを使うのが楽。

35 :30:03/02/16 13:50.net
>>31
Windowsなんですよね・・・xyzzyの置換使おうかと思ってたんですが
あ、Pythonも使い方よくわからないけど(汗汗)入ってます
# Pythonだとどうかくんですかね??

ダメだったらCygwinでも入れてやってみようと思います。
皆様有難う御座います。

36 :名無しさん@お腹いっぱい。:03/02/16 14:03.net
秀丸の置換使えば?

37 :名無しさん@お腹いっぱい。:03/02/16 14:26.net
perlぐらいうごかん?

38 :あぼーん:あぼーん.net
あぼーん

39 :30:03/02/16 15:35.net
>>34さんの方法で問題なく出来ました。
有難う御座いました。とりあえず、この表現の
意味をきちんと理解しとこうと思います。メモメモ・・・

ところで、>>36さん、何故秀丸?

40 :あぼーん:あぼーん.net
あぼーん

41 :名無しさん@お腹いっぱい。:03/02/17 07:44.net
BNF使え

42 :エディタ何617:03/02/21 16:46.net
http://pc2.2ch.net/test/read.cgi/software/1040201710/641-643
より移行してきますた。
正規表現の話はこっちでしましょ。
俺には大した知識はないんだが。

>642 :名無しさん@お腹いっぱい。 mailto:[sage] :03/02/21 15:28 ID:esOQbptZ
>なんのために [:alpha:] のような書式があるのかと子一時間

これは知らんかった。
テキストエディタの粋を脱しそうだが。

43 :エディタ何617: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 :名無しさん@お腹いっぱい。:03/02/21 17:54.net
>文字クラスが文字コードに依存するって言うのは恥ずかしいことでしかないと思うんだが。

そりゃ確かに恥ずかしい。
でも [a-z] という表記が「小文字アルファベットの文字クラスを指定している」ものだと誤解して、
誤用しているほうがもっと恥ずかしい。
「-」を使った表記は文字コード上で連続した複数の文字を意味しているだけだから、
本当に文字クラスを指定しなければならないシーンでは [:lower:] や \l を使うべき。
代表的なエンコーディングでは偶然文字コードが連続しているから
[a-z] で期待した動作になるので常用されているの。

45 :名無しさん@お腹いっぱい。:03/02/21 20:46.net
[:alpha:] とかってウムラウトがどうたらとかいう話のためにあるのだと思ってた

46 :名無しさん@お腹いっぱい。:03/02/21 21:22.net
unicode などが本格的に使われ出して
多国語があたり前になったら
[:Japanese:] とか [:Korean:] とか
できるのかな。

47 :名無しさん@お腹いっぱい。:03/02/21 21:36.net
>>45
その通り。 POSIX ではロケールによって変わるよ。

48 :テキ何618: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 :名無しさん@お腹いっぱい。:03/02/22 00:55.net
>>44
>本当に文字クラスを指定しなければならないシーンでは
> [:lower:] や \l を使うべき。

つーことは[B-Yb-y]は本当に文字クラスを指定せんといかんシーンでは
 [BCDEFGHIJKLMNOPQRSTUVWXYbcdefghijklmnopqrstuvwxyz]
あるいは
 [^AZaz[:digit:](憶えとらんので略)]
と書かねばならんわけか…

50 :名無しさん@お腹いっぱい。:03/02/22 01:19.net
[:alpha:] とかって、実際に実装されてるのあるの?


51 :名無しさん@お腹いっぱい。:03/02/22 01:21.net
>>48
ある正規表現が書かれた目的を果たせるかどうかで、正しい正しくないを言うことはで
きるでしょう。ただし目的を果たすといっても厳密でなければならない場合やアバウト
で大丈夫な場合と様々なレベルがあるわけで、ケースに応じて使い分けるのが大人とい
うものです。

それから正規化しているから正規表現というわけじゃないです。ある有限オートマトン
が受理する特定の言語(記号列)を正規言語と呼び、その受理される言語の全ての集合を
正規集合と呼び、その集合を表現する方法を正規表現と呼んでいるのです。文字コード
云々が問題になるのは、SJISやEUCのようなマルチバイトコードで表現された1文字を1
つの記号として認識しない正規表現エンジンがあるからで、またエンジンが認識する場
合でも利用者側が記号としての文字と文字コードとの関係を、[a-zA-Z] と [:alpha:]
のようにゴッチャにしているからです。もっとも後者についてはマルチバイトには依存
しない話ですけれど。

>>49
厳密にはそういうことになります。メンドイのでそこまでする人は少ないでしょうが。

52 :エディタ何617:03/02/22 01:40.net
| また正規表現の正しい、正しくないってあるのか?

俺なんかの知識じゃたいしたこと言えないが、現在においては統一的な正しさなんて無いと思う。
ものによって実装が違うから、egrepでは正しくedでは正しくないとかあろうね。
使い手が自分で何をしようとしているのか理解できているかどうかが問題になりそう。

Q「s/[A-z]//g としたら[や^まで消えてしまいました。この正規表現は間違っていますか?」
A「正規表現もパターンマッチの結果も正しいです。ただ、あなたの求めている正規表現ではないでしょう。」

>向こうでも思ってたんだけど中途半端な正規化だから文字コードに
>依存するって思ってたんですが。

エディタは文字コードを勝手に認識してくれるからユーザーが考える必要はないけど、
文字クラスで[a-z]とかやる場合はどうしたって文字というより文字コードを扱うってことになる。
ただ、普通は上に書いたように[A-z]なんてやる奴はいないだろうから、
実質的には文字コードに依存していないかのように扱えるというだけだと思う。

ところで [a-z] として、これがどういう意味であって欲しいんでしょうか?

53 :名無しさん@お腹いっぱい。:03/02/22 03:42.net
[a-z]
"a"の文字コードから"z"の文字コードまでの文字コードの文字のことかな

54 :テキ何618:03/02/22 12:14.net
>51,52
すまん質問の仕方が悪かった。
上で正規表現の仕様が悪いみたいな雰囲気があったから疑問に
おもったんですが、たとえば「grepの仕様は正しいが、awkの仕様は
間違ってる」みたいな正規表現の仕様上の問題で間違いというのが
あるのかという疑問でした。

>[a-z]
その正規表現で規定されているaのキャラクタからzのキャラクタまで。
文字コードでも文字でもないはずだ。
たとえばProxomitronなら[a-zA-Z]と同じようになるようにキャラクタの
並びが規定されている。

55 :名無しさん@お腹いっぱい。:03/02/22 12:19.net
正規表現が実装されているなら
実装の細部がgrepとawkでは異なるというだけで
正しいも正しくないもないんだってば。

56 :名無しさん@お腹いっぱい。:03/02/22 14:34.net
全然議論が噛み合ってないなぁ。
「正規表現」(オライリー)の一冊くらい読んでから出直してきて欲しいな。
でなきゃこんなの不毛だよ。

57 :名無しさん@お腹いっぱい。:03/02/22 14:50.net
>>51
> それから正規化しているから正規表現というわけじゃないです。ある有限オートマトン
> が受理する特定の言語(記号列)を正規言語と呼び、その受理される言語の全ての集合を
> 正規集合と呼び、その集合を表現する方法を正規表現と呼んでいるのです。文字コード

これが理解できません。

58 :名無しさん@お腹いっぱい。: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 :名無しさん@お腹いっぱい。:03/02/22 17:34.net
形式言語の教科書くらい読んでから来い

60 :テキ何618:03/02/22 23:55.net
>55
ですよね、最近そういった話を耳にするんで敏感になってました。
きっぱり否定してくださって助かります。
51氏も分かりやすい説明ありがとうございます。

>58
それが正規表現関係の資料をいくら読んでも必ず「aのキャラクタから
zのキャラクタまで」だったと記憶してます。
逆にコードで表記されてる資料がありましたら、ご提示願えませんか?
# 日本語の資料だとよく文字コードの話もみます。

>「大文字小文字を同一視する」
の実装はどうされているのでしょうか?
まさか一度さきに別に小文字を大文字に書き直して正規表現を当ては
めてから元の小文字に戻すという芸当はされてないと思います。
私は憶測ですが正規表現上で小文字と大文字を同一文字だと規定し
ているように思えます。
# 文字コードレベルだと高とはしご高の関係に近いと思います。

>59
お勧めのありますか?

61 :名無しさん@お腹いっぱい。:03/02/23 00:05.net
>>6 くらい通読して出直してから議論してくれよ。でなきゃこんなやりとり無駄だよ。
いや、煽りじゃなくてマジでさ。

62 :名無しさん@お腹いっぱい。:03/02/23 02:10.net
>>6の本って目次だけ見ると各ツールの「実装」について述べてる
みたいだけど、正しい「定義」については載ってるの?

63 :名無しさん@お腹いっぱい。:03/02/23 02:15.net
規格としては POSIX 1003.2 があるけど、
正しい定義なんてものはないと思う。

64 :名無しさん@お腹いっぱい。:03/02/23 02:50.net
>>62
『正しい「定義」』なんてないんだからおまいらの議論は不毛だって言ってんの。
中途半端な知識と思い込みだけの虚しい空論だよ。

65 :名無しさん@お腹いっぱい。:03/02/23 03:32.net
>>62
たしかに目次には各ツールの実装についての記述が目立つ。
だが、この本のキモは4章と5章だ。
君が正規表現をある程度自在に扱えるのであれば、
この二つの章を読むだけでも価値はある。
とりあえず話はそれからだ、と思うぞ。


66 :名無しさん@お腹いっぱい。:03/02/23 06:07.net
文字クラス中の - が文字コードでの連続を表すか文字としての連続を表すかは実装依存です、
で終了。

67 :62:03/02/23 14:33.net
>>63-65
いや、>>66の言うように実装依存だと思ってたから、
正しい「定義」が載ってるなら、読んどこうかと思ったんですが。

>>61の発言を(それまでの流れと併せて)読むと、さも載ってそうなんですが、
目次見たら(-_-)ぁゃιぃ…だったので。


68 :名無しさん@お腹いっぱい。:03/02/23 14:53.net
http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap09.html
規格が「正しい」かどうかは別として…

69 :名無しさん@お腹いっぱい。:03/02/23 15:30.net
正規表現の定義ねぇ。どうもどこかの団体がきっちりまとめた規格
のような「定義」を期待してるようだが、このあたりのハナシは計算
機科学色が強いから定義など教科書の数だけある、と言ってみるテスツ。
本質はみな同じのはずだけどナ。
しかも見慣れぬ数学記号飛び交う抽象的な議論になるから、
オライリー本で充足しているヤシにはカルチャーショックだろう。
大学の図書館でも逝け。

70 :61:03/02/23 18:23.net
>>67
> >>61の発言を(それまでの流れと併せて)読むと、さも載ってそうなんですが、
> 目次見たら(-_-)ぁゃιぃ…だったので。

漏れの発言を勝手な解釈すんなよ。
正しい「定義」なんて載ってるわけないだろ。正しい「定義」なんてないんだから。

71 :61:03/02/23 18:33.net
>>67
ていうかあれだ、「定義」の話じゃなくて「規格」の話をしたいのか?

「定義」の話なら、>>69 の言うように、
計算機科学(の世界だと「正則表現」の方が通りが良いか?)の本でも
紐解いて読んでみるのが良いと思う。

そうでなくて、単に、
文字列バターンマッチに使われる「正規表現」の正しい「規格」の話、
ってことなら、そんなものは無い。
強いて言えば、>>68 くらい。

72 :名無しさん@お腹いっぱい。:03/02/23 18:37.net
>>67
「定義」=「決め」でしょ。
その場その場で都合のいいように「定義」するわけだから
「正しい『定義』」なんてのはあるわけがない。

73 :名無しさん@お腹いっぱい。:03/02/23 18:39.net
>>67
じゃ、まずは「正しい」の定義から始めようか。

74 :61:03/02/23 19:06.net
というわけで、このスレは、「ホップクロフト&ウルマンを輪読するスレ」になりますた。

75 :62:03/02/24 03:14.net
規格として[a-z]の解釈について正しい定義はあるのか?
っていう議論中に、「コレ読め」と言われたら載ってるように
見えても仕方ないと思うんですがねぇ。

>>6に載ってないから無い」、とは言えんでしょ。
何の為に読めと言ったのか聞いてよろしい?>>61

76 :名無しさん@お腹いっぱい。:03/02/24 05:19.net
POSIX 1003.2 に厳密に従っていればこれにある通り。
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/regex.7.html

が、世にある実装は大抵そうでない。

77 :名無しさん@お腹いっぱい。:03/02/24 18:47.net
>>76
見た感じ、EBDICでもロケールが英語なら[a-z]は
英小文字のセットとして評価されるべきみたいですな。

78 :名無しさん@お腹いっぱい。:03/03/14 03:37.net
>>75
全く違う。
そもそも君の話は正しい定義がこの世に存在する事を
前提としている。しかし実際はそのようなものは
ないわけだ。(「正しい」の意味が私の考えている
ものと違うならわからないが)
そのことを理解するために(というか議論のための
基礎知識を得るために)読んでおくべきと 61 は
言いたかったのだと勝手に解釈してみる。

厳密な定義という意味で正しいと言っているなら
計算機科学の教科書をひもといてみるといいかもなあ。

79 :名無しさん@お腹いっぱい。:03/03/14 09:29.net
>75
そんなマヌケな話を避けられるようになるよ、
とそういう意味で勧めてくだすったんだろう。

80 :75:03/03/15 03:46.net
>>78
>そもそも君の話は正しい定義がこの世に存在する事を前提としている。
シテネーヨ。

つーか著名ツールの実装に関する本を読んだ所で、
[a-z]の解釈は〜という議論に決着つくのですか。

1-60までのスレの流れと、>>61の勧めた>>6の内容を
良く見てから出直して下さい。>>78,79

81 :名無しさん@お腹いっぱい。:03/03/15 08:44.net
取り合えず読んでみる、と言う選択肢は
意図的に無視されているのだろうか…


82 :名無しさん@お腹いっぱい。:03/03/15 10:24.net
もともと [a-z] なんていう表記は、素な正規表現/正則言語にはない。
でもそれじゃ面倒だから - で繋いだ2つの文字の間の文字群を略記する方法が、
及び実装としては単に文字コードを繋ぐ方法がデファクトスタンダードになった。
それを勘違いしたバカが [a-z] は論理的なアルファベットを意味すべきだとか言い始めて
[[:alpha:]] や \l やら \a が導入されるようになったり、変な挙動をする実装もでてきたかもしれん。
でここでPOSIXなんて有名無実なものが定義されたわけだ。
なのにさらにバカが [a-z] の正しい解釈、定義を教えろとかいう。

やれやれだ。

83 :名無しさん@お腹いっぱい。:03/03/15 13:23.net
ここは62=75の脳内正規表現を研究するスレになりますた。

# 素直に勉強してから出直せばいいのに。。。

84 :62=75:03/03/15 22:06.net
>>82
やれやれとはこっちが言いたい。
[a-z]の解釈が文字コード依存なのは承知済みだっつーの。

>>61のタイミングで論議を不毛と評しつつ、正規表現の本読めと
言われたら、規格か何かが載ってるとしか思えんでしょうが。
著名ツールの実装見たところで、議論の不毛を悟れますか?

85 :名無しさん@お腹いっぱい。:03/03/15 22:43.net
少なくとも読めば実装により異なることは察することができたかもね

86 :名無しさん@お腹いっぱい。:03/03/15 22:46.net
規格自体を読みたいなら68にリンクがあるし、なんでそう粘着してるんだろうか

87 :名無しさん@お腹いっぱい。:03/03/15 22:51.net
なぜに著名ツールの実装しか載っていないと決めつけ
勝手な解釈で話を進めるのだろう?
とにかくおかしな前提と曲解が多い上に粘着だ。

88 :名無しさん@お腹いっぱい。:03/03/15 23:53.net
もう放置しようよ……。

89 :名無しさん@お腹いっぱい。:03/03/16 00:39.net
非放置国家 2ch

90 :名無しさん@お腹いっぱい。:03/03/17 23:40.net
>>87
決め付けてませんが。
>>62で実装以外の内容(具体的に規格など)は
載って無いかと聞いてるんだし。

おかしな前提・曲解・粘着は認めますがね。
で、偉そうに読めとか言った>>61は何処逝ったの?

91 :名無しさん@お腹いっぱい。:03/03/18 01:11.net
>>90
> で、偉そうに読めとか言った>>61は何処逝ったの?
読んだら出てくるんじゃねーの?

92 :90:03/03/18 01:29.net
とっくの昔に読んでいるんだが…
(立ち読みでざっとだけど)

93 :名無しさん@お腹いっぱい。:03/03/18 01:39.net
形式言語系の本は読んだのかYO!

94 :名無しさん@お腹いっぱい。:03/03/18 01:58.net
>>92
そんなの読んだうちに入らん。

95 :名無しさん@お腹いっぱい。:03/03/18 02:02.net
理屈が通用すると勘違いせず、粘着は放置しましょう

96 :名無しさん@お腹いっぱい。:03/03/18 02:15.net
腹が減ってるもんで
こんなのでも食いついてしまうんです。

97 :名無しさん@お腹いっぱい。:03/03/18 02:36.net
>>90
君が何を知りたいのか、
おじさんわかんなくなっちゃったよ。
ここらでひとまず
疑問点を整理して箇条書きにしてみないか?

98 :名無しさん@お腹いっぱい。:03/03/18 22:00.net
技術系の本を立ち読みしただけで読んだ気になれる人には
何を言っても無駄ではなかろうか。

99 :山崎渉:03/04/17 12:30.net
(^^)

100 :あぼーん:あぼーん.net
あぼーん

101 :名無しさん@お腹いっぱい。:03/04/22 15:32.net
『詳説 正規表現 第2版』
ISBN4-87311-130-7
本体価格5,400円

が5月に

102 :あぼーん:あぼーん.net
あぼーん

103 :名無しさん@お腹いっぱい。:03/04/22 23:53.net
>>101
おっ。
ソースどこ?

104 :名無しさん@お腹いっぱい。:03/04/23 00:54.net
定義うんぬんよりも、便利な方がいい。

というわけで、

(?# (?: (?= (?! (?<= (?<! (?> (?()

105 :名無しさん@お腹いっぱい。:03/04/23 16:36.net
>>103
オライリーのメルマガ

106 :名無しさん@お腹いっぱい。:03/04/24 11:01.net
正規表現(regular expression)の名前の由来はなに?
regularをなぜ正規と略したんだろう?
「正式にきめられていること。正式の規定」という意味の正規では
幾分意味不明なんじゃないだろうか?
むしろregular verb(規則動詞)の意味のregularと捉えるべきで、
「規則表現(法or式)」とでもした方が文字列の規則性を規則的に表現するもの
という意味でより素直で的確なんじゃないだろうか。
ここにはnormal distributionを正規分布と略し日本語としては
意味不明にしてしまったのと同様のセンスの無さが感じられる。

107 :名無しさん@お腹いっぱい。:03/04/24 11:51.net
「function」を「関数」と訳すアフォといっしょだろ。


108 :名無しさん@お腹いっぱい。:03/04/24 11:54.net
regular に合うような日本語単語を考えると
正規、正則、規則、規律、規則的、整然、合式、本格的、定常、完全、定例
などが挙げられる。
正規に違和感を感じるのは同意。
ただし、規則だと regular より rule の方を感じる。

regular expression を長々と訳すならばオレテキには
規則正しい表現法
となるが、あとはそれをどのように短くするかだ。
正規表現には違和感あるが
規則表現にはさらに違和感ある。
規則正しい生活を規則生活と省略するのに似ている。


109 :あぼーん:あぼーん.net
あぼーん

110 :名無しさん@お腹いっぱい。:03/04/24 13:46.net
わたしは特に違和感ない。

複数の体系の共通項的要素を抽出して、どれをもあつかえる
単一の体系にまとめることをCS的に正規化というでは?

111 :名無しさん@お腹いっぱい。:03/04/24 13:57.net
正則表現といわれたほうがシックリするわ。

112 :名無しさん@お腹いっぱい。:03/04/24 14:15.net
>>107
「函数」が正解、という主張ならそれは翻訳の問題ではなく
日本の戦後国語教育の問題なわけだが

113 :107:03/04/24 14:55.net
>>112
> 「函数」が正解、という主張なら
違う。


114 :名無しさん@お腹いっぱい。:03/04/24 15:38.net
>>113
それならそれで108なみ詳細な解説きぼんぬ

115 :113:03/04/24 17:11.net
>>114
> それならそれで108なみ詳細な解説きぼんぬ
どきっ!!
い、いやぁ、「function」は普通に訳したら「機能」じゃないかなぁ〜、
なんて思うので。
なんで、「関数」になったのか疑問なので。
やっぱり、かっこいいからかなぁ。


116 :名無しさん@お腹いっぱい。:03/04/24 18:10.net
数学方面なら「正則」とするところなのに、情報数学方面では「正規」の方が
定着しているということなのか?

>>115
数学で既に訳語があったからという単純な話なんでは。函数→関数の
書き換えはまた別の話だが。古い先生だと「関数」の表記を絶対使わない人
もいるね。自分も函数の方がいいと思う

117 :名無しさん@お腹いっぱい。:03/04/24 18:38.net
中国語が英語から「function」という英単語を輸入するとき
それを「函数」と翻訳した。
函は中国語で「ファン」と発音し「function」の「ファン」に似ているところからきている。
そのあと日本は中国から「函数」という言葉を漢字で記述された文字として輸入した。
そして「函」を「カン」と発音した。
戦後の日本の教育において「函」が教育仕様内の標準的漢字から外れるという理由から
およそ同義で同音の「関」に置き換えられた。

すなわち「function」の「fun」を元にしてその部分は
以下の経緯で「関」に変わった。
英語の「fun」
↓発音の類似性から
中国語の「函」(ファン)
↓同じ文字
日本語の「函」(カン)
↓発音の類似性から
日本語の「関」(カン)

こういう改変に次ぐ改変で「関数」という言葉が生まれた。
もはや「関数」という言葉にはそう表現する適切な理由がない。
情報系の技術屋なら「function」ないし「ファンクション」
と表現すれば良いのだ。どうしても漢字で書きたければ「機能」で良し。
「関数」だなんていい加減な言葉を使うなら
「class」を「学級」とでも表現してくれた方がまだましと言えよう。


118 :名無しさん@お腹いっぱい。:03/04/24 19:37.net
函(はこ)の数と意味も掛けてあるから、やはり捨て難い訳ではある

119 :名無しさん@お腹いっぱい。:03/04/24 21:06.net
>>118
classは「級」でいいはずだけど、「きゅう」ではみじかすぎて
わからんからそのまま「くらす」。

120 :名無しさん@お腹いっぱい。:03/04/24 23:01.net
くらす、きさん!!

121 :名無しさん@お腹いっぱい。:03/04/24 23:41.net
もう「関数」で慣れちゃってるからなぁ。
「機能」と訳したところで
意味がわかりやすくなるわけでもないし。

「正規表現」にしても「関数」にしても
おれにとってはある概念に対するラベルでしかない。

122 :名無しさん@お腹いっぱい。:03/04/25 00:41.net
「関数」は一つの名詞なので、
一旦覚えてしまえば
「関数」という訳について不自然さは感じにくい。

でも「正規表現」は「正規」と「表現」の複合語であるから、
正規な表現? という意味不明さはいつまでも残る。

123 :名無しさん@お腹いっぱい。:03/04/25 00:43.net
"regular expression" というからには
regular じゃない expression もあるんでしょうか?
たとえばどんなのですか?


124 :名無しさん@お腹いっぱい。:03/04/25 08:08.net
>>123
fgrepに書く検索パターン

125 :名無しさん@お腹いっぱい。:03/04/25 11:26.net
>>115
プログラミング用語での function は単なる「機能」ではなく、
数学的な(値を返す) function としてのニュアンスが込められているんじゃ
ないのかなあ?

関数型言語ではいうに及ばず、FORTRAN とかでもそんな感じだし、
C だってもともと void 型なんてないし。

# 正規表現と関係ないので sage


126 :名無しさん@お腹いっぱい。:03/04/25 11:34.net
「機能」も造語っぽくない?
明治あたりの。

127 :名無しさん@お腹いっぱい。:03/04/25 14:00.net
関数が函数の書き換えだと知ったとき、小学校の算数の時間で関数の
説明に「ブラックボックス」という言葉を使っていたのを思い出した。
この書き換えは最悪だと思ったな。

しかし、いくら原語が同じだとしても、関数と機能は日本語としては完全に
別物になってしまっている。function key の function は、やはり「機能」の
意味でないと落ち着かない。

>>122
「正則」は、ほとんど術語としてでしか使われることがないけど、「正規」は
普通の文章でも使われるからね。「正規」と「表現」の結び付きが強くなって
しまう。

128 :名無しさん@お腹いっぱい。:03/04/25 14:00.net
expression にしても、「式」とも訳される場合もあって悩ましいことこの上なし

129 :名無しさん@お腹いっぱい。:03/04/25 15:18.net
じつは日本語って、語彙が豊富?
まぁ、ほとんど訳語だけど。。。


130 :名無しさん@お腹いっぱい。:03/04/25 16:19.net
>>127
> function key の function は、やはり「機能」の意味でないと落ち着かない。

それは「function key」を「関数キー」と読んでる人に言ってくれ。いるのか?

Google で検索しても 163 件しかない上に、関数電卓の「関数キー」
(sin 関数のキーとか) だの「ハッシュ関数のキー」だのばっかりなのだが。


131 :名無しさん@お腹いっぱい。:03/04/25 21:24.net
「ファンクションキー」と言ってるのしか聞いたことがないが、この「ファンクション」
は「機能」の意味でないと落ち着かないと言ってるだけだ

132 :名無しさん@お腹いっぱい。:03/04/25 22:31.net
>>129
自国語で数学的概念を表現できる国は少ないほうだと思われ。
微分、積分、階乗、無理数、有理数、etc...
functionに対する訳で機能と函数で揉めるのは贅沢なことなんじゃないのかなぁ……
ていうか、算数、数学の教科書が日本語だけで完結できること自体、
ほかの国から見ると不思議なことなんじゃないの?

133 :名無しさん@お腹いっぱい。:03/04/26 01:12.net
何の話をしてるんだか・・・

134 :名無しさん@お腹いっぱい。:03/04/26 01:48.net
では、日本における性器表現についてどうぞ


135 :名無しさん@お腹いっぱい。:03/04/26 02:04.net
[まち]んこ

136 :名無しさん@お腹いっぱい。:03/04/26 05:40.net
\(藁田\|ワ[ロラ]タ\)

137 :名無しさん@お腹いっぱい。:03/04/26 13:48.net
>>135 >>136
こういう日本語の正規表現の使える実装にはどんなのがありますか?

Ruby, 鬼車, jperl, xyzzy, Emacs, あたりは使えると思うけど、ほかには?

138 :名無しさん@Vim%Chalice:03/04/26 13:59.net
Vim

139 :名無しさん@お腹いっぱい。:03/04/26 18:15.net
perlとかなら
/(ma|chi)nko/i
みたいに i オプションつけることで
大文字小文字を同一視してくれる機能が一般的に普及してますね。
grepとか大抵の性器表現できるツールにはあるみたい。

そこでほしいのが平仮名片仮名同一視。
/[まち][んむ]こ/i
とすれば「マむコ」にも「チンこ」にもマッチしてほしいわけ。
そういう機能がついた性器表現ってどういうツールにございますか?
あと
/ベートーヴェン/i
で検索したら
「ベートーベン」や「べえとおべん」にもマッチしてくれる
ようなのもあるものでしょうか?


140 :名無しさん@お腹いっぱい。:03/04/26 18:53.net
>>139
後者は正規表現の範疇ではないような。
前者はあってもよさそうだね。

141 :名無しさん@お腹いっぱい。:03/04/26 19:16.net
文字クラスの拡張でしょうか

142 :名無しさん@お腹いっぱい。:03/04/26 20:15.net
>>141
日本語用文字クラスってわけね。
しかしそんな日本でしか使えないもんはツールで対応すべきだな。

>>139
>/ベートーヴェン/i
>で検索したら
>「ベートーベン」や「べえとおべん」にもマッチしてくれる

こんなん正規でも正則でもない非正規表現だ。
>>139は正規表現使うのやめた方が幸せになれそうだよ。

143 :名無しさん@お腹いっぱい。:03/04/26 20:25.net
>>139 Migemoの辞書をカスタマイズすればできるようになるよ

144 :名無しさん@お腹いっぱい。:03/04/26 21:25.net
>>143
そういう問題じゃなかろう・・・

145 :名無しさん@お腹いっぱい。:03/04/26 21:27.net
日本語正規表現の使える実装は Ruby, 鬼車, jperl, xyzzy, Emacs, Vim で全てですね?

146 :名無しさん@お腹いっぱい。:03/04/26 22:05.net
>>145
いいえ。

147 :名無しさん@お腹いっぱい。:03/04/27 02:24.net
文字クラスとか自分で設定できる正規表現みたいなのが
あればいいんじゃないの。
どうせ perl だって場あたり的に好きなように拡張してるんだから。


148 :名無しさん@悩み中:03/04/28 05:24.net
sed ですが、
[[:xdigit:]]\{2\} にマッチする文字列のなかで、
\(61\|75\|6f\) にマッチしないようなものを指定したいとき
どないすればよろしい?


149 :148:03/04/28 05:37.net
やっぱり、先に \(61\|75\|6f\) にマッチする奴を退避しておいてから、
[[:xdigit:]]\{2\} にマッチするやつを指定するしかないんかな…


150 :名無しさん@お腹いっぱい。:03/04/29 02:16.net
誰か、正規表現だけで会話するスレ作ってくれ。


151 :名無しさん@お腹いっぱい。:03/04/29 03:26.net
/いったい何を会話するというのだ/

152 :名無しさん@お腹いっぱい。:03/04/29 04:09.net
>>150
それこそ言いだしっぺの法則だろ。正規表現だけで会話したい >>150 が立てれ。

153 :名無しさん@お腹いっぱい。:03/04/29 09:51.net
駄スレ立てんな。

154 :名無しさん@Meadow:03/04/30 10:51.net
>>153

$mes153 =~ s/。//;
reverse(split(//, $mes153));
わかた?
結果は、「なんてつたレスだ」




155 :名無しさん@お腹いっぱい。:03/04/30 11:12.net
>>154
こうなりますた。
$ perl -e 'quotemeta($var='駄スレ立てんな。'); print reverse(split(//,$var));'
B∧んてぉ洛スμ・


156 :名無しさん@お腹いっぱい。:03/04/30 11:29.net
>>150

名スレの予感

157 :名無しさん@Meadow: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";


158 :名無しさん@お腹いっぱい。:03/04/30 15:47.net
>>156
2chですから、性器表現とこれを用いた強制痴漢ならあちこちに。

159 :名無しさん@お腹いっぱい。:03/04/30 21:21.net
\hなのはいけないと思います!

160 :名無しさん@お腹いっぱい。:03/04/30 23:49.net
\SM(?:性器拡張(?!器具))

161 :名無しさん@Meadow: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";
で十分だった。この全角文字対応の正規表現は、euc-jpの奴ね。
でもさ、やっぱ正規表現で会話するってむずいよ。>>150よ。



162 :名無しさん@お腹いっぱい。:03/05/01 21:39.net
print while s//>>161普通過ぎてつまらん/;

163 :名無しさん@お腹いっぱい。:03/05/01 21:48.net
>>161
それは正規表現ではなく perl script というのではないだろうか。

164 :名無しさん@お腹いっぱい。:03/05/01 21:50.net
>>163の的確すぎるツッコミに藁。


165 :名無しさん@お腹いっぱい。:03/05/01 21:59.net
>>1-164
これら全てが正規表現であることは自明なのであります。

166 :名無しさん@お腹いっぱい。: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,


167 :名無しさん@お腹いっぱい。:03/05/02 11:26.net
>>166

駱駝本(第二版)の p.103 の脚注 *32 に、

> もし指定された最終値が、マジックによる増加によっては生成できない
> ような値なら、最終値のケタ数を超えない範囲で値を生成する。

と書いてあるけど、違う?


168 :名無しさん@Meadow: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はない。


169 :名無しさん@お腹いっぱい。:03/05/02 22:35.net
文字のインクリメントもちゃんと桁上げされるんよ。

#perl > result.txt
$a = "a";
print ++$a, "\n" while (length $a < 3);

170 :169:03/05/02 22:38.net
あ、これじゃ for (A..Z) の説明にはならないな。

171 :名無しさん@お腹いっぱい。:03/05/02 22:50.net
>>166
全然正規表現じゃなかった・・・。

172 :名無しさん@お腹いっぱい。:03/05/04 07:28.net
/\x82\xad\x82\xbb\x82\xc1/
sjis


173 :名無しさん@お腹いっぱい。:03/05/05 11:59.net
>>172
パターンマッチさせる意味は?

174 :名無しさん@お腹いっぱい。:03/05/05 18:39.net
>>172
1) ネタがないから
2) わし166だので、172に揶揄されて「くそっ」と


175 :名無しさん@お腹いっぱい。:03/05/05 18:44.net
ちがった、171にバカにされて・・・
      ~~~


176 :名無しさん@お腹いっぱい。:03/05/05 19:18.net
おまえらみんな(ち|い|う)んぽ。

177 :名無しさん@お腹いっぱい。:03/05/07 16:30.net
『詳説 正規表現』を読んでいるようなエキスパートの人に質問です。


「"a" が偶数個、"b" が奇数個含まれる、すべての文字列を表す正規表現」


って分かりますか?

自分は答えを見てもよく分かりませんでした。


178 :名無しさん@お腹いっぱい。: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))*/

179 :名無しさん@お腹いっぱい。:03/05/07 18:18.net
>>177
余裕があれば一度オートマトンに関する本を読んでみて。
http://www.amazon.co.jp/exec/obidos/ASIN/4320029488/ref=sr_aps_b_1/249-5563000-9397957
の前半はすごくわかりやすいよ。

そこまでしなくても、一度 >>178 たんのいってることを
http://katsu.watanabe.name/grep/p7.html
みたいな状態遷移図にしてみるといいかも。

180 :177: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)*

となる。

正規表現でうまく表現できない問題に当たったときは、いったん正規文法で記述してから
正規表現に変換すると解決できる場合も多い。


181 :長いので分割。:03/05/07 21:17.net
… だそうです。

果たして↑の長い正規表現が >>178 さんの答えと同じものを表しているのかどうか
分かりませんけども。

>>179
有用な本と URL の紹介、ありがとうございました。


それにしても最初にパッと見て「この問題は有限個の状態で表せる」って思いつくかなぁ?
不思議だ。


182 :名無しさん@お腹いっぱい。:03/05/07 21:36.net
>>181
> それにしても最初にパッと見て「この問題は有限個の状態で表せる」って思いつくかなぁ?
それはパッと見というよりは、冷静に分析してわかるものでしょ。
慣れれば一瞬で分析できるようになるかもしれんけど。

183 :名無しさん@お腹いっぱい。:03/05/07 22:50.net
>>178,180
それは「aとbだけからなる文字列」について?


184 :名無しさん@お腹いっぱい。:03/05/08 00:00.net
>>183 んなもん s/[ab]/[^ab]*&/ すりゃ良いだけじゃん

185 :名無しさん@お腹いっぱい。:03/05/08 03:51.net
>>184
それって、正気表現でつか?


186 :名無しさん@お腹いっぱい。:03/05/08 04:49.net
>>183 のために [^ab]* をはさみまくってたら、

「長すぎる行があります!」

っておこられたよ・・・


187 :名無しさん@お腹いっぱい。: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)))*/

188 :名無しさん@お腹いっぱい。:03/05/08 12:54.net
>>187
それで baaabaaab がまっちすんの?

189 :名無しさん@お腹いっぱい。:03/05/08 13:27.net
以下のようなデータから、著者の部分(最後の括弧から括弧まで)を
取り除きたいと思います。

木立(こだち)のなかに(夏目弱石)
山の上の芋粥(いもがゆ)(芥川蛇の介)

s/(.+?)$//;

ですとうまくいきません。perl5.6で、文字コードはeucです。
webprog板のPerl初心者スレで聞いたのですが、どうも解決しないのです。
どうしたらよいか教えていただければ幸いです。


190 :名無しさん@お腹いっぱい。:03/05/08 13:40.net
>>189
セイキヒョーゲンの問題ではなくパールの問題っぽいですね。
そっちのスレ行った方がよいかも。
できるなら「うまくいきません」を再現させる
できるだけシンプルなコードを添付してほしいな


191 :名無しさん@お腹いっぱい。:03/05/08 13:41.net
>>189
プログラム技術板にPerlの質問スレがある。webprogに特化したこと以外はそっ
ちの方がいい。

s/([^()]+?)$//;


192 :名無しさん@お腹いっぱい。:03/05/08 13:44.net
Perl の正規表現では ( ) は、後で \1, \2, ... にマッチさせるための
メタ表記だから、括弧そのものにマッチさせたければ \( \) と書かなければ
ならない。(egrep や emacs とは逆)

193 :名無しさん@お腹いっぱい。:03/05/08 13:44.net
>>190
では、Perlスレ行ってきます。って、unix板にはなかったんで、
プログラム板ですね。ありがとございますた。




194 :名無しさん@お腹いっぱい。:03/05/08 13:47.net
あれれ板探してたら、2つもレスが。
>>191
それ、jperlなら動くんでしょうが、perl5.6ではだめでした。
>>192
いや、全角括弧なんです。


195 :名無しさん@お腹いっぱい。: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"を出してほしいということで叶わない


196 :189:03/05/08 14:10.net
>>195
>perlの最短一致は
>マッチの先頭位置を後ろにずらす効果がない

なるほど。では、>>189のコードは、

木立
山の上の芋粥

を出力してもいいはずですが、何も出力しない(何にもマッチしない)んです。
どうしてですか。よろしければ教えてくらさい。


197 :名無しさん@お腹いっぱい。:03/05/08 14:14.net
s/(.+)(.+)$/\1/;

198 :189:03/05/08 14:19.net
>>197
これだと、

木立
山の上の芋粥

になってしまいます。求めているのは、

木立(こだち)のなかに
山の上の芋粥(いもがゆ)

です。


199 :197:03/05/08 14:22.net
マジ? 手元の Perl 5.005_03 だと求めているのになるのだが・・・

200 :189:03/05/08 14:28.net
>>199
すみませ〜ん。
求めているものになりました。いろんなスクリプト混ざり合ってたので
混乱しました。
(.+)が最長一致するから(.+)でいいってことに気づきませんでした。



201 :名無しさん@お腹いっぱい。:03/05/08 14:45.net
perlの正規表現と日本語文字列との相性の悪さを
実感する問題だったなあ

202 :192: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 の国際化された正規表現が普及して、こんな知識は不要になって
くれれば一番いいのだが…。

203 :192:03/05/08 14:56.net
この例の場合、最後の括弧の中は全角ひらがなしか入らないから関係ないけどね。

204 :名無しさん@お腹いっぱい。:03/05/08 15:51.net
5.8ならuse utf-8; use Encode;して適切なエンコード指定でファイル読み込ませれば解決するぞ。

205 :名無しさん@お腹いっぱい。:03/05/08 21:50.net
http://61.210.205.4/
これなんだろ@@@

206 :名無しさん@お腹いっぱい。:03/05/08 23:46.net
WebProg板の「正規表現道場@2ch Part2」はご存知?
http://pc2.2ch.net/test/read.cgi/php/1038146241/

207 :189:03/05/09 15:02.net
>>206
知ってます。最近、書き込み少ないので、こっちにしました。
あっちでは、以前、いろいろ答えてあげてたんですが。
実は、他のやり方ならいろいろ考え付いたのですが、
s/(.+?)$//;
がなぜだめかが知りたくて質問したのでした。
>>195だけがその質問に答えてくれました。そいえば、それも
らくだ本で読んだ覚えあったなぁと。しかし、「最短一致がマッ
チの先頭部分を後ろにずらしてくれない」という理由ですと、
なぜ、「木立(こだち)のなかに(夏目弱石)」が、「木立」
にならないか、いまだに不明です。($b="abcabc")=~s/b.*?c$//;
で$bが'a'になるんだから、そうなってもいいはずですよね。

# でも、3つのスレで「()をエスケープしろ」っていう返事をもらったのにも
# びっくり。漏れは、navi2chなので、半角と全角は一目瞭然ですが、IEで見
# てみたら、たしかに女滋養に見えますた。


208 :名無しさん@お腹いっぱい。:03/05/09 15:32.net
女滋養(;´Д`)ハァハァ

209 :名無しさん@お腹いっぱい。:03/05/09 17:39.net
生粋のプログラマーなら日常的に半角全角の違いがすぐ分かる環境を望む。
そうじゃない人はあまり気にしないので女痔用に見えても兵器。


210 :名無しさん@Meadow:03/05/09 17:52.net
女痔用 (´;。;△;。;)キモ!!!!!!!!!!!!!!!

211 :名無しさん@Meadow:03/05/09 21:33.net
>>207
漏れは、navi2chでも迷ったっぞい。



212 :189=207:03/05/09 22:20.net
>>211
はっきり言っておくんなさい。
たすかに、fontの問題かもすれんですよ。
だかーら、記号類は半角とか全角とか注釈つけとけと…
でもって、半角カタカナなんか問題ない時代になったんだなー、と。


213 :名無しさん@お腹いっぱい。:03/05/11 04:17.net
半角か全角かをいちいち説明されないと違いの分からないような
素人さんにはそもそも質問なんかされてないんですよ

214 :名無しさん@お腹いっぱい。:03/05/11 15:57.net
189が意図的に使い分けてるという保証もなかったわけだが。

215 :名無しさん@お腹いっぱい。:03/05/11 16:17.net
>>214
はじめから euc と断ってたし、
対象テキストデータとか試しに提示したダメコード片を良く見れば、
意図的に使い分けてることは十分想像できたと思うが。
質問の仕方や内容からも半角全角混同してるようなレベルの質問とは思えなかった。

つうか、>>207 は何をいまだにハマってるんだ?
s/(.+?)$//; なら「木立」になるから問題なかろう?

216 :191=214:03/05/11 16:20.net
>>215
一応そう想定して答えた。

217 :名無しさん@お腹いっぱい。:03/05/11 16:40.net
>>216
釈迦に説法か。スマソ

218 :189=207:03/05/11 18:24.net
>>215
いえ、それが、全行出力されちゃうんです。
ちょっと、やってみていただけませんか。(インデントはわざとしません。)
---
while(<DATA>) {
chomp;
s/(.+?)$//;
print "$_\n";
}
__DATA__
木立(こだち)のなかに(夏目弱石)
山の上の芋粥(いもがゆ)(芥川蛇の介)


219 :215:03/05/11 18:36.net
>>218
ん〜、なんないよ (5.005_03) 。
5.6 を試す環境が無いので申し訳ないでつが、Perl のバージョンの問題?

220 :名無しさん@お腹いっぱい。:03/05/11 19:16.net
>>218
5.6.0 で試したらそのまま出ますた。
これまでの経緯をちゃんと読んでないんだが、 s/([^)]+)$//; じゃダメ?


221 :名無しさん@お腹いっぱい。:03/05/11 19:23.net
>>220
それだと、 [^)] の部分は [^\xa1\xcb] なのでダメだと思われ。

>>204 の方法だとうまくいくようになるの?

222 :名無しさん@お腹いっぱい。:03/05/11 21:08.net
>>218
5.8.0だと、191の式でうまくいくんだがなぁ。

while(<DATA>) {
chomp;
s/([^()]+)$//;
print "$_\n";
}
__DATA__
木立(こだち)のなかに(夏目弱石)
山の上の芋粥(いもがゆ)(芥川蛇の介)


木立(こだち)のなかに
山の上の芋粥(いもがゆ)

223 :189=207: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にするべきですかね。




224 :名無しさん@お腹いっぱい。:03/05/11 21:31.net
>>222
いやいや、たまたまうまくいっているように見えるだけでしょ。
>>202 さんのを参考にしる。

225 :195:03/05/12 09:32.net
>>218
s/(.*?.)$//;
にしとけ
perlのバグだ
暇ならソースのMINMODあたり追いかけて

226 :189=207:03/05/12 21:13.net
>>225
ありがとん。「。」毎に改行入れようとして、s/(.+?。)//;やってみたが、こ
れすらできんかった。結局、perl5.6以上はjperlないから日本語処理を中心に
してる場合は、使えないってことかなぁ。もち、~ohzakiさんとこに書いてあ
るような注意をしたり、半角文字で置き換えたりすれば使えるげど、面どい。



227 :名無しさん@お腹いっぱい。:03/05/12 23:01.net
>>226
5.8にしてEncodeつかう。

228 :名無しさん@お腹いっぱい。:03/05/13 02:04.net
>>226
> 結局、perl5.6以上はjperlないから日本語処理を中心にしてる場合は、
> 使えないってことかなぁ。

違うっしょ。

229 :189=207:03/05/13 07:23.net
>>227
やってみまつ。
>>228
じゃ、jperlでできるs/.+?[。!?]/$1\n/g;あたり、どやってやる?
めんどいでしょ。




230 :189=207:03/05/13 07:24.net
あら、s/.+?[。!?]/$&\n/g;だった。


231 :名無しさん@お腹いっぱい。:03/05/13 11:05.net
>>229
あぁ、そういう話か。それはその通りですね。

でも、それは 5.8 の Encode とやらを使うと解決するってことなのでは。
っつーか、漏れは 5.8 動かせる環境無いので確認しようがないんでつが、
誰一人として Encode が一体何者なのか説明しようとしないのは何故?

232 :名無しさん@お腹いっぱい。: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嫁

233 :名無しさん@お腹いっぱい。:03/05/14 01:43.net
>>232
perl 5.6 では不可能ということか?

234 :189=207: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にして、やってみたけどだめですた。

私が問題にしているのは、[](文字クラス)や+?、*?(最短一致)がマルチバ
イトに対応しているかどうかということなのですが・・・


235 :名無しさん@お腹いっぱい。:03/05/14 10:15.net
>>234 5.6時代から既に対応している

236 :189=207: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時代から既に対応しているって言ってんの?変だよ。


237 :名無しさん@お腹いっぱい。:03/05/14 11:10.net
>>236 use utf8; してる?

238 :189=207:03/05/14 11:24.net
>>237
してなかったっす。
みなさん、ごめんなさ。


239 :名無しさん@お腹いっぱい。:03/05/14 17:10.net
perl 質問スレにするなよ。

240 :名無しさん@お腹いっぱい。:03/05/15 19:55.net
というわけで、これにて終了。
正規表現スレはここまでです。
あれ?


241 :名無しさん@お腹いっぱい。:03/05/16 01:42.net
単語に「マッチしない」のは
どうやれば? ^\<word\>
じゃないし。


242 :名無しさん@お腹いっぱい。:03/05/16 03:07.net
>>241
そりを正規表現(だけ)で実現するのは難しいのでは?

普通は、grep なら -v とか、スクリプト言語なら !~ /word/ とかするんじゃないかと。

243 :189=207:03/05/16 08:24.net
>>241
perlの拡張正規表現を使えば出来るよ。
/^(?!.*word)/



244 :あぼーん:あぼーん.net
あぼーん

245 :名無しさん@お腹いっぱい。: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の正規表現にもそれぞれ独
立した章を設けるなど、全編にわたって大幅に加筆がなされまし
た。正規表現の本質を読み解く決定版です。とくに正規表現を使
いこなしていると自負している人にほど読んでほしい本です。


246 :名無しさん@お腹いっぱい。:03/05/25 00:29.net
あれ?今日買ってきたんだけど27日発売だったのね…

247 :名無しさん@お腹いっぱい。:03/05/25 00:43.net
>>246
つーことで発売記念age

248 :名無しさん@お腹いっぱい。:03/05/25 03:23.net
素数にマッチする正規表現募集。

249 :名無しさん@お腹いっぱい。:03/05/25 03:38.net
>>245
第1版と比較してのレビューきぼんぬ

250 :名無しさん@お腹いっぱい。:03/05/25 03:44.net
>>249
> 2003年5月発行 -- 5月27日発売
とあるからまだ無理なのでは

251 :名無しさん@お腹いっぱい。:03/05/25 03:49.net
>>248
正規表現だけでなく、なんかしら言語使ってやればよい。

252 :名無しさん@お腹いっぱい。:03/05/25 03:56.net
>>248
何故敢えて茨の道を行くのか?

253 :名無しさん@お腹いっぱい。:03/05/25 05:07.net
>>245
これの第1版買ったのですが、いまいち難しかったです。
もっと易しい本ってないですか?

254 :名無しさん@お腹いっぱい。:03/05/25 05:35.net
>>253
Ruby の初・中級者なら、「Ruby Magic―Rubyで極める正規表現」はお勧め。

255 :245: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日に買えたのよ。

256 :名無しさん@お腹いっぱい。:03/05/27 11:05.net
今日発売か。
昼休みに買ってくるか。


257 :名無しさん@お腹いっぱい。:03/05/27 21:10.net
>>256さん、どうですた?


258 :249:03/05/27 21:28.net
>>255 さんのと、今日立ち読みした感じで、第2版も購入することにしますた。
そういえば、翻訳者 (監訳者) が変わってたんですね。

259 :名無しさん@お腹いっぱい。: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 とかの簡単なパース(並び替えとかそんな程度)を
タグ付き正規表現でさくっと処理できれば楽でうれしい。よろしく。

260 :名無しさん@お腹いっぱい。:03/05/27 21:38.net
二個目の*がlongest matchしようとして
3個目の*にmatchさせたいであろう_まで持っていってしまうのが原因。

sed -e 's/{_*\(.*[^_]\)_*}/\1/'

261 :名無しさん@お腹いっぱい。:03/05/28 00:59.net
'<,'>s@^@//@

262 :名無しさん@お腹いっぱい。:03/05/28 01:03.net
最少マッチって perl とか ruby にしかない?
sed, grep 等の伝統的 tool にはないの?

263 :名無しさん@お腹いっぱい。:03/05/28 01:07.net
>>262
ないよ

264 :名無しさん@お腹いっぱい。:03/05/28 14:45.net
>>262
grepに最小一致の機能があったとして
それの魅力はイッタイ何なのだろうか?


265 :あぼーん:あぼーん.net
あぼーん

266 :262:03/05/28 20:42.net
確かに sed では使っても grep では使わないかも。
いや、でも後方参照する時に必要なこともありえますね。


267 :名無しさん@お腹いっぱい。:03/05/29 10:14.net
>>257
昼休みにいきつけの書店にいったが売ってなかったんで。
帰りに別の書店で買った。
でもまだ読んでない…
通勤時間に読むっつーてもあれを毎日持ち歩くのは
重たいしなぁ。


268 :名無しさん@お腹いっぱい。: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"をマッチさせる別の表現はないですかね?

# 全角"("の中にどうも半角")"の文字が隠れてるのかなぁ?(あくまでも推測)



269 :名無しさん@お腹いっぱい。:03/05/30 22:42.net
>>268
おめな、2byte文字と1byte文字が同じに扱われると思ってるらしいな。たぶん、
文系のドキュソだな。しかも、すぐ上で2byte文字コードの話出てたの見てね
えな。こいう、初心者質問は、webprogのPerl初心者スレ逝け。



270 :名無しさん@お腹いっぱい。:03/06/05 14:26.net
>>268
Perl5.8.0 + UTF8 でやったら 1 になったよ。


271 :名無しさん@お腹いっぱい。:03/06/07 12:10.net
[ ] のなかに '-' と ']' の両方を入れたい場合はどうすればいいのですか?

272 :名無しさん@お腹いっぱい。:03/06/07 12:20.net
>>271
何で?

273 :名無しさん@お腹いっぱい。:03/06/07 12:29.net
>>271
[]-]

274 :名無しさん@お腹いっぱい。:03/06/17 23:25.net
>>271
!.-[

275 :名無しさん@お腹いっぱい。:03/07/03 21:13.net
保守

276 :名無しさん@お腹いっぱい。:03/07/08 11:49.net
regexp ml盛り上がってますね。読んでて楽しい。


277 :名無しさん@お腹いっぱい。:03/07/08 14:02.net
このスレはいつからまともな人たちをヲチするようになったのですか?

278 :名無しさん@お腹いっぱい。:03/07/12 21:26.net
すいません、テキストファイルの中の .bananaなどの単語(行頭ではなく)の先頭が
ドットがあるものだけをgrepで抜き出したいのですが、jp.appleのような単語までひっかかって
しまい上手く絞り込めません。

アドバイスをお願いします!!

279 :名無しさん@お腹いっぱい。:03/07/12 21:54.net
>>278
\b?\.\w+?
で、どうじゃろ?

280 :名無しさん@お腹いっぱい。:03/07/12 22:44.net
>>279
すいません、なんか上手くいかないです。
ls -laでディレクトリ内の全ファイルを表示して、grepで隠しファイルだけを抽出したかったのですが。

281 :名無しさん@お腹いっぱい。:03/07/12 23:34.net
ls -la | grep ' \.'
ではあかんの?


282 :名無しさん@お腹いっぱい。:03/07/12 23:57.net
>>281
行のどこかに"."があれるとヒットしてしまうんです

283 :名無しさん@お腹いっぱい。:03/07/13 00:28.net
ls -la | grep '^\.'
こういうこと?

284 :名無しさん@お腹いっぱい。:03/07/13 00:28.net
>>282
とはいえ、"."って、ファイル名にしかでてこないよね?
>>281 をよーくみる。


285 :283:03/07/13 00:30.net
間違えた。

ls -1a | grep '^\.'
これか
ls -la | grep ' \.'
これだな。下は余計なものを拾う可能性もあるが。

286 :名無しさん@お腹いっぱい。:03/07/13 00:31.net
ls -d .*
なんてね。


287 :名無しさん@お腹いっぱい。:03/07/13 00:32.net
あ、正規表現スレだった。すまん。

288 :名無しさん@お腹いっぱい。:03/07/13 02:00.net
ヤハリココハオモッテタトオリバカバッカリダッタナ(プ

289 :名無しさん@お腹いっぱい。:03/07/13 02:57.net
ls -la | awk '$9 ~ /^\./{print $0}' はどうよ。

290 :名無しさん@お腹いっぱい。:03/07/13 11:30.net
>>280 ふつーそういうときは ls つかわず findつかえ。
find ./ -type f -name "\.*" -print


291 :名無しさん@お腹いっぱい。:03/07/13 14:36.net
(())

292 :名無しさん@お腹いっぱい。:03/07/14 11:38.net
>>290 ふつーそういうときは >> つかわず >> つかえ。

293 :名無しさん@お腹いっぱい。:03/07/14 19:04.net
backreferenceを前方参照と訳したのはなぜですか?


294 :名無しさん@お腹いっぱい。:03/07/14 21:19.net
後方参照としている訳もあるよ。
まぁ、現在の位置よりも前を参照するという意味では
日本語的には前方参照であってると思う。
ようするに「今いる位置より戻って参照」って意味になるんだから。

んでも、意味を考えて訳すなら「戻って参照」とか、どう?

295 :名無しさん@お腹いっぱい。:03/07/14 21:32.net
>>294
ちょっと前にCスレで話題になったんだけど、Cで「前方参照」といった場合の前方って、
ファイルの終端方向を指す。「ひどい訳語だ」ってことで話は終わったんだけど、
正規表現でも混乱が見られるしなんかいい言葉ないもんかねえ。

日本語では時間を表す文脈で「前」にまるで正反対の意味があるからよくないのだと思う。
「以前」だと過去だし「前進」だと未来だし。

あとこれはすれ違いか? そうだよね。すまん。

296 :名無しさん@お腹いっぱい。:03/07/14 21:41.net
>>279 >>281 >>283 >>284 >>285 >>286 >>287 >>289 >>290

みなさま、ありがとうございます。

シングルクォーテーションに空白が使えたり、
アッパーチルダとハット(キャレット?)の区別を知ったりと、
正規表現の難しさを知りました。

今、「テキストデータ料理学」っていう古い本を読んでいるのですが、
オライリーの正規表現本は買ったほうがいいですか?

(もう2〜3週間前にオライリーのサイトでカタログを注文したのに、
まだ来ない…)

297 :名無しさん@お腹いっぱい。:03/07/14 22:23.net
おれは初版も新しいのも持ってるけど、自分の知識に自信がないうちは
お薦めしない。もちろんあったらあったで便利だけど。

やっぱり、「俺、正規表現バリバリだぜーYAH」状態で買って読んで
目からうろこ落ちまくり感を堪能するのがいいんではないかと。

298 :名無しさん@お腹いっぱい。:03/07/14 23:31.net
>294
するってえと、正規表現的には日本語で前方参照あるいは後方参照と書いてあったら
どっちもbackreferenceと思えってわけだぁね。
>295
計算機分野だと「前方」という言葉はforwardの訳語というのがあたりめえだと思ってたから、
正規表現関係だと、「前方参照」がbackreferenceのことだっていうのがわかんなくて
難儀したってわけよ。


299 :名無しさん@お腹いっぱい。:03/07/14 23:33.net
>>297
>>296は学ぶ意欲を持っているから、今のうちに買っておいて損はないと思う。
むしろ薦める。
オイラリーはハズレが少ないからな。

300 :名無しさん@お腹いっぱい。:03/07/14 23:35.net
>>298
俺はperlから入ったから後方参照が当たり前かと思ってた。
他言語使うようになってから吃驚したってわけよ。

301 :298: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


302 :298:03/07/14 23:48.net
ありゃりゃ?

(?<=pattern) A zero-width positive lookbehind assertion.
(?<!pattern) A zero-width negative lookbehind assertion.

"lookbehind assertion" の訳語って何だ?


303 :名無しさん@お腹いっぱい。:03/07/15 00:32.net
「俺の背後に立つな」
デューク東郷の格言だろ。

304 :名無しさん@お腹いっぱい。:03/07/15 00:35.net
lookahead 見越し
lookbehind 見返り

305 :名無しさん@お腹いっぱい。:03/07/15 01:01.net
前後不覚だな。

306 :名無しさん@お腹いっぱい。:03/07/15 03:12.net
>>296
>オライリーの正規表現本は買ったほうがいいですか?

持ってなくても覚えられるし、
エディタのサーチとか grep とかで実験しながら
感覚的に慣れるのも悪くないんじゃない?

ただし emacs で覚え始めるのはすすめない。
backslash で混乱する。

307 :名無しさん@お腹いっぱい。:03/07/15 07:21.net
>>297
>>299
>>306
ちょっと大きな本屋に行って立ち読みしてみます。
ありがとうございました〜

308 :あぼーん:あぼーん.net
あぼーん

309 :名無しさん@お腹いっぱい。:03/07/17 13:35.net
>>308
二度と目を覚ますな。


310 :あぼーん:あぼーん.net
あぼーん

311 :名無しさん@お腹いっぱい。:03/07/20 21:36.net
さげ保守

312 :名無しさん@お腹いっぱい。:03/07/27 22:01.net
OOはもうすぐ1.1出るけど、MSWORDよりセキュリティ大丈夫かな?
http://pc2.2ch.net/test/read.cgi/bsoft/1055292975/392


313 :あぼーん:あぼーん.net
あぼーん

314 :高校生:03/08/02 17:12.net
boo
baa
baz
っていうテキストが例だとして、sedを用いて、
booまたはbaz、っていう正規表現はどうなるの?
rubyやperlならパイプ記号で条件和の表現が出るけど、
同じように書いてもsedに誤解されてしまう。

315 :名無しさん@お腹いっぱい。:03/08/02 17:52.net
>>314 ん? \|使えば良いのでは


316 :高校生:03/08/02 18:06.net
sed 's/boo\|baa/hoge/g' ./hage.txt
とかだとやっぱりだめなんすよね。
「boo」とかの単語の括り方がよくわからんのです。

317 :名無しさん@お腹いっぱい。:03/08/02 20:53.net
GNU sed 4.0.7版 ではそれでもできてるけどな。
sed 's/\(boo\|baa\)/hoge/g' これでどう?


318 :名無しさん@お腹いっぱい。:03/08/02 22:07.net
>>317
gsedならできるがsedは食ってくれない。

319 :名無しさん@お腹いっぱい。:03/08/03 01:09.net
単一の正規表現じゃなきゃいかんの?
sedと決まってるなら
sed -e 's/boo/hoge/g' -e 's/baa/hoge/g'
でいいんちゃう?

置換後の文字列と置換前の文字列の片方とで重なりがある場合
どうするかひとしきりモメたりする ↓↓↓ のがお決まりだな。

320 :名無しさん@お腹いっぱい。:03/08/03 09:52.net
単一の正規表現でないと記述が冗長で見た目がキモイ、
っていうのはあると思うよ。
おいらはインストール直後のFreeBSDの環境構築をスクリプトに任せたくて、
結局シェルスクリプトにawkな記述を書いて解決した。
カーネルの再構築にしても、/etc/下の記述にしても、要はテキストの置換なわけで。
本当はrubyがFreeBSDの/usr/bin下にあるようなご時世だったら
楽ができるんだけど、そこら辺は個人的な勉強不足だなぁ。

321 :名無しさん@お腹いっぱい。:03/08/13 19:13.net
{a,b}上の言語Lが
『aaで開始し、かつ、bbを部分列として含む』という条件を満たす語からなるとき
Lを表す正規表現ってどうなるの?
L=aa(a*b*+bb)* ?

322 :名無しさん@お腹いっぱい。:03/08/13 20:45.net
L=aa(a+b)*bb(a+b)*

323 :名無しさん@お腹いっぱい。:03/08/13 22:05.net
>>321
*+ ???

324 :名無しさん@お腹いっぱい。:03/08/13 23:05.net
>323
'+'より'|'のほうが普通かな。
L=aa(a|b)*bb(a|b)*

本来的には連接、選択、閉包が表現できればいい。


325 :名無しさん@お腹いっぱい。:03/08/13 23:08.net
L ::= aA
A ::= aB
B ::= aB | bC
C ::= aB | bD
D ::= ε | aD | bD


326 :名無しさん@お腹いっぱい。:03/08/13 23:34.net
.*
何にでもマッチする最強の正規表現です!


327 :名無しさん@お腹いっぱい。:03/08/13 23:50.net
>>326
ドットが含まれてなかったらマッチしない罠


328 :名無しさん@お腹いっぱい。:03/08/13 23:53.net
キター

329 :名無しさん@お腹いっぱい。:03/08/14 00:13.net
ageてるし、ネタと見た。

330 :名無しさん@お腹いっぱい。:03/08/14 23:29.net
>>329
しね!

331 :あぼーん:あぼーん.net
あぼーん

332 :あぼーん:あぼーん.net
あぼーん

333 :名無しさん@お腹いっぱい。:03/08/28 20:12.net
うまづら。

334 :名無しさん@お腹いっぱい。:03/09/02 03:30.net
ほす。

335 :名無しさん@お腹いっぱい。:03/09/14 04:27.net
☆湯

336 :名無しさん@お腹いっぱい。:03/09/16 13:49.net
[ruby-list:38393] じゃないけど、[a-z] みたいな文字クラスの表現は、
EBCDIC とかだと「意図した通り」には動かないと思うんだけど、
ASCII か ASCII を包含したキャラクタセットという前提で書くべきものなの?

337 :名無しさん@お腹いっぱい。:03/09/16 14:08.net
>>336
[:lower:] とかは使っちゃだめ?

338 :名無しさん@お腹いっぱい。:03/09/16 15:34.net
>>337
あ、いや、質問が悪かったですね。
範囲指定する文字クラスはどうあるべき (書くべき) か?っていう話です。

ていうか、 re_format(7) を私の拙い英語力で読んでみたところ、
ASCII コードの並びを前提とするような文字クラスの範囲指定は、
portable じゃないからやらない方が良い、ということのようですね。

というわけで、極力 >>337 さんのみたいな文字クラス指定を使った方が良い、と。

339 :名無しさん@お腹いっぱい。:03/09/20 10:41.net


340 :名無しさん@お腹いっぱい。:03/10/08 15:50.net
保守

341 :名無しさん@お腹いっぱい。:03/10/12 16:53.net
vimで"DEL"という文字列が含む行で、"DEL"以下を削除したい場合はどうしたらいいでしょうか?

342 :名無しさん@お腹いっぱい。:03/10/12 17:15.net
スレ違い。


Vim6 Part6
http://pc.2ch.net/test/read.cgi/unix/1058706125/

343 :名無しさん@お腹いっぱい。:03/10/13 01:12.net
:%s/DEL.*//


344 :名無しさん@お腹いっぱい。:03/10/13 15:10.net
>>343
サンクス、すみません。

345 :名無しさん@お腹いっぱい。:03/10/18 17:51.net


346 :名無しさん@お腹いっぱい。:03/10/21 23:12.net
>>343
DELは残したい場合はどうすればいいですか?

347 :名無しさん@お腹いっぱい。:03/10/21 23:24.net
:%s/DEL.*/DEL/

348 :名無しさん@お腹いっぱい。:03/11/05 11:20.net
MS-DOSが使われていた頃に、"mifes"と言うエディターが有った。
そのマニュアルに1頁ほどの正規表現の説明があって、自分は最初に、それで
覚えて使い出した。
使い始めの頃は、何回も間違えたけど、少しづつ慣れてきた。

自分の周りを見ても、プログラマを何年もやっていても正規表現を知らない
人は、結構いる。
一旦、覚えてしまうと非常に便利だと思うんだけど。

349 :名無しさん@お腹いっぱい。:03/11/05 17:48.net
正規表現で俺の存在を抹消してくれ。

350 :名無しさん@お腹いっぱい。:03/11/05 19:01.net
s/俺の存在//g;

351 :名無しさん@お腹いっぱい。:03/11/05 20:10.net
gsub!(/俺の存在/, "")

352 :名無しさん@お腹いっぱい。:03/11/18 18:31.net
捕手

353 :名無しさん@お腹いっぱい。: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ニノ ー'´       ` ‐- ,,_
    , ‐ ´         └―'´                     `


354 :名無しさん@お腹いっぱい。:03/11/19 09:17.net
>>353
それ捕手じゃなくて投手やっ!www

355 :名無しさん@お腹いっぱい。:03/12/04 19:24.net
別のスレからの引用
ps ax |grep '[s]shd'
とやると、grep自身の行にヒットしないそうだけど、なぜ?
sってメタ文字でもなんでもないのに。

356 :名無しさん@お腹いっぱい。:03/12/04 19:30.net
なぜって言われても、自明だが。

357 :名無しさん@お腹いっぱい。:03/12/04 19:33.net
grep sshd と何が違うの?

358 :名無しさん@お腹いっぱい。:03/12/04 19:35.net
あ、ごめん、わかった(w


359 :名無しさん@お腹いっぱい。:03/12/04 19:36.net
grep sshd だと、ps の出力に含まれる "grep sshd" の "sshd" がマッチする。

grep '[s]shd' だと、ps の出力には "grep [s]shd" が含まれるが、
この "[s]shd" は、[s]shd にはマッチしない。よね?わかる?

360 :名無しさん@お腹いっぱい。:03/12/04 23:59.net
なるほど。トリックだな。


361 :名無しさん@お腹いっぱい。:03/12/05 10:59.net
まあバッドノウハウだとも思うけどナー
http://www.namazu.org/~satoru/misc/bad-knowhow.html


362 :名無しさん@お腹いっぱい。:03/12/05 13:26.net
そこまでのものではないと思うけど、
この例だと、頭の中でpsの出力まで加工しちゃうからな(w


363 :名無しさん@お腹いっぱい。:03/12/05 20:33.net
grep -v grep でええやん。

364 :名無しさん@お腹いっぱい。: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
としました.

上手く行くんですが, "#" の位置が行ごとにバラバラなのが気持ち悪いです.

そのファイルで "#" 以前の文字数が一番長いものを調べ, そこに合わせて
その他の行の "#" 以降を持ってくるようにするにはどうすればいいんでしょうか?

365 :名無しさん@お腹いっぱい。:03/12/30 00:14.net
sedでやれってか?
漏れはへたれなので、Perlなどを使ってしまうが(w


366 :名無しさん@お腹いっぱい。:03/12/30 00:28.net
>>364
2パスでやれば?

367 :名無しさん@お腹いっぱい。:03/12/30 09:20.net
  2パス?

368 :名無しさん@お腹いっぱい。:03/12/30 16:05.net
>>367
"#" 以前が一番長いのを調べてから、それに合わせて整形し直せば。

369 :名無しさん@お腹いっぱい。:04/01/11 21:57.net
>>364
70桁でそろえる場合

sed ':a /.\{70\}\#/!bc; b; :c s/\(.*\)\#\(.*\)$/\1 \#\2/; ta'

亀ですが、こんなんでどうでしょう


370 :名無しさん@お腹いっぱい。:04/01/11 22:21.net
決め打ちでいいなら何の苦労もないわけで。

371 :名無しさん@お腹いっぱい。: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]
}
}


372 :名無しさん@お腹いっぱい。:04/01/15 23:45.net
( ´∀`)

373 :名無しさん@お腹いっぱい。:04/02/03 10:33.net
保守

374 :名無しさん@お腹いっぱい。:04/02/06 18:23.net
教えてください。
Windows用のファイルをemacsなんかで開いたとき,最下行に
^Z
という符号が表示されることがあります。
これはいったい何でしょうか?


375 :名無しさん@お腹いっぱい。:04/02/06 19:31.net
いわゆるeof

376 :名無しさん@お腹いっぱい。:04/02/06 21:01.net
>>375
ありがとうございます。この符号のあるファイル同士をcatで連結すると,途
中にこの符号が入ってしまいます。この符号をsedでマッチさせて消去したい
のですが,どうすればいいでしょうか。
sed '/^$/d' ではダメでした。


377 :名無しさん@お腹いっぱい。:04/02/06 21:09.net
>>376
いわゆるeof

378 :名無しさん@お腹いっぱい。:04/02/06 22:38.net
EOF符号をsedで消去できますか?


379 :名無しさん@お腹いっぱい。:04/02/21 22:59.net
grep で使える正規表現を精密に解説したサイトはありますかね?
日本語/英語どっちでもいいのですが。

380 :名無しさん@お腹いっぱい。:04/02/22 00:19.net
http://www.kt.rim.or.jp/~kbk/regex/regex.html

381 :名無しさん@お腹いっぱい。:04/02/22 00:29.net
レベル低いなー
378に対して出来るとも出来ないとも言えないのか...


382 :名無しさん@お腹いっぱい。:04/02/22 00:58.net
378=381 ですか?

383 :名無しさん@お腹いっぱい。:04/02/22 02:14.net
>>378
できるよ。普通に
s/^Z//
とかすればいい。もちろん^ZはEOFの一文字ね。

こんなの試せばすぐわかるだろと思ってたんだが、よく>>376を読むと、
「正規表現は純なテキストであるべきで特殊記号を混ぜるのはイクナイ」
と感じたんだろうな。まあ気持ちはわかるわ。

最近の正規表現拡張では、文字をコードの数値で表現する文法が
入ってたりする方が普通(例えばperlとか)だもんな。

384 :338:04/02/22 02:24.net
でね、特殊記号の特別なケースがtab。大昔は\tなんて表現なかったさ。
よく画面上の見た目やハードコピーや雑誌からシェルスクリプトを打ち直して、
tabとspaceの違いで動かないなんてことが時々あったんだよ。

あと勝手にシェルスクリプトを整形されて動かなくなるとか。


385 :名無しさん@お腹いっぱい。:04/02/22 02:52.net
>>382
いいえ
>>383
ありがトン!


386 :名無しさん@お腹いっぱい。:04/02/22 02:55.net
>>382
381=385 が正解


387 :名無しさん@お腹いっぱい。:04/02/22 16:53.net
>>380
ブックマークにいれますた。

388 :名無しさん@お腹いっぱい。:04/03/27 17:05.net
[\\w$'-]
これはどういうことなのでしょう?
[\w$'-]
ならわかるのですが..

389 :名無しさん@お腹いっぱい。:04/03/27 17:09.net
>>388
処理系は何?

390 :名無しさん@お腹いっぱい。:04/03/27 17:20.net
>>389
Rubyです
Regexp::compile("\b\d[\d\.]+\d\b|[\w]+|[\\w$'-]+")
scanメソッドで英文を分割してます

391 :名無しさん@お腹いっぱい。:04/03/27 17:22.net
>>390
ほほう。バグってる悪寒。

392 :名無しさん@お腹いっぱい。:04/03/27 17:25.net
Regexp::compile("\\b\\d[\\d\\.,]+\\d\\b")
こんなのがあるんですが..

393 :名無しさん@お腹いっぱい。:04/03/27 18:30.net
>>392
Ruby で "..." の中で '\' を書くときは、'\' でエスケープする必要があるの。
つまり Regexp::compile("\\w") は /\w/ と同じ。

>>390 のだと '\' のエスケープが足りない部分があるように見える。
たとえば、 "\w" は "w" に、 "\b" は "\010" になっちゃう。
ので「バグってる悪寒」と言いました。

394 :名無しさん@お腹いっぱい。:04/03/27 18:53.net
>>393
なるほど、必死に\\と重ねる正規表現について調べてましたよ
ありがとう


395 :名無しさん@お腹いっぱい。:04/03/30 01:42.net
perl で質問です。

NOTE note "note" notes

上のような文字列を「book」だけを「note」に置換したいのですが
s/\bnote\b/book/g
のようにすると、ダブルクォートで囲まれているものも置換されてしまうのですが
それを

NOTE book "note" notes

のようにするにはどう表記すればよいのでしょうか?
詳しい方、教えてください。


396 :名無しさん@お腹いっぱい。:04/03/30 04:15.net
>>395
> NOTE note "note" notes
>
> 上のような文字列を「book」だけを「note」に置換したいのですが

397 :名無しさん@お腹いっぱい。:04/03/30 10:07.net
>>396
その下の
s/\bnote\b/book/g
ぐらい読んで多目にみてやれ。

>>395
とはいえ、仕様があいまいすぎ。
'note' はどうする? :note: は? "abc note def" は?

398 :名無しさん@お腹いっぱい。:04/03/30 10:29.net
s/ note / book /g
か?

>>397
> とはいえ、仕様があいまいすぎ。
んだな。

399 :名無しさん@お腹いっぱい。:04/03/30 12:34.net
>>395
s/(?=[^"])\bnote\b(?=[^"])/book/g;

# こんなんで良いわけないよなと思いつつ・・・

400 :名無しさん@お腹いっぱい。: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かなと思ったのですが、行頭、行末では置換の対象となってくれませんでした。



401 :名無しさん@お腹いっぱい。:04/03/31 02:52.net
>>400
補足です。
ここでいう単語とは \w+ で表せる範囲のもので、
アルファベット大文字、小文字も含めて完全に単語の
先頭から末尾までが一致するものです。


402 :名無しさん@お腹いっぱい。: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)


403 :名無しさん@お腹いっぱい。:04/03/31 14:53.net
s/"note"/hogehoge/g
s/note/book/g
s/hogehoge/"note"/g
おれならこうしちゃうな。
考えんのめんどい。

404 :名無しさん@お腹いっぱい。:04/04/01 01:10.net
>>402

ありがとうございました。
たいへん勉強になりました。


405 :名無しさん@お腹いっぱい。:04/04/07 15:07.net
質問させてください。

&にはマッチして欲しいのですが、&にはマッチして欲しくないのです。

どのように記述すればよいのでしょう。

お願いします。

406 :405:04/04/07 15:09.net
&にはマッチ
&amp;にはマッチしない

でした。すいません。

407 :名無しさん@お腹いっぱい。:04/04/07 15:26.net
>>405
Perl5 でいい?

408 :名無しさん@お腹いっぱい。:04/04/07 15:32.net
>>405
/&(?!amp;)/

409 :名無しさん@お腹いっぱい。:04/04/11 13:22.net
正規表現のおすすめ書って何がありますか?

410 :名無しさん@お腹いっぱい。:04/04/11 14:13.net
オライリーのやつ。

411 :名無しさん@そうだ選挙に行こう:04/07/11 16:49.net
ワイルドカード(DOS)の *.txt って、正規表現だとどう書くの?

412 :名無しさん@お腹いっぱい。:04/07/11 20:35.net
{(([0-9a-zA-Z]){0,})\.txt}とか半端に返してみるテスト

413 :名無しさん@お腹いっぱい。:04/07/11 20:46.net
[^\\/]+\.[Tt][Xx][Tx]\z とか (ry

414 :名無しさん@お腹いっぱい。:04/07/11 22:41.net
foo と bar 両方含む行をマッチさせたいんだけど、
awkでいうところの and演算子
% awk /foo/&&/bar/
が使える、windowsで動くgrepツールなんか教えてください。

#絞込み再検索のないGUIなgrepツールなんかイラネ

415 :名無しさん@お腹いっぱい。:04/07/11 23:39.net
>>412,413
. 記号は \ でエスケープになるのですね。.*\.txt でマッチはしました。
助かりました、ありがとうです。

416 :名無しさん@お腹いっぱい。:04/07/12 22:46.net
>>414

FIND "foo" | FIND "bar"

みたいのじゃ駄目?

417 :名無しさん@お腹いっぱい。: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
>

418 :414:04/07/23 03:17.net
なるほど、andをorに展開すればいいのか。
しかし fooかつbarかつbazを検索、つーばあい展開すんのめんどくさいなぁ。

windowsのGUIなgrepツールは、サブフォルダも検索、とかできて
結構便利なのも歩けど、パイプとかorが使えなかったりしてイマイチ。

結局cygwinでawk使ってるけど、これもいまひとつメンドクサイ。
2chのログを検索してるだけなんだが_| ̄|○

419 :名無しさん@お腹いっぱい。:04/07/29 01:12.net
>>418
xyzzy の ggrep 辺りがいいんじゃない?

420 :名無しさん@お腹いっぱい。:04/07/30 00:18.net
Windows の AWKじゃだめですか?

421 :名無しさん@お腹いっぱい。:04/08/03 09:48.net
Perloしかないべ


422 :名無しさん@お腹いっぱい。:04/08/06 22:51.net
#から行末までをあらわす正規表現ってどうやればいいんでしょうか。

423 :名無しさん@お腹いっぱい。:04/08/06 23:22.net
#.*$

424 :名無しさん@お腹いっぱい。:04/08/12 15:32.net
#[^#]*$

425 :名無しさん@お腹いっぱい。:04/08/24 00:25.net
質問があります。

サクラエディタ(正規表現ライブラリ:BREGEXP.DLL)でCソース中のhogehogeをgrepしてた
場合に、コメント化(//)されている行だけは検索結果に表示したくないんですが、
どのような正規表現で検索すればいいでしょうか?


426 :名無しさん@お腹いっぱい。:04/08/24 01:48.net
あげ

427 :名無しさん@お腹いっぱい。:04/08/24 01:56.net
>>425
そのエディタよく知らないんだけど、Unix で動くの?

428 :名無しさん@お腹いっぱい。:04/08/24 13:36.net
スレタイだけ見て、板を確認してないんだと思われ。

429 :名無しさん@お腹いっぱい。:04/08/24 13:43.net
それを言うと、このスレ自体板違いな気もしなくはないが。ム板のだけで十分やん。

430 :425:04/08/24 21:24.net
UNIX板って知っていて質問をしましたが。
とりあえず、ム板に逝ってみます。

431 :名無しさん@お腹いっぱい。:04/08/24 21:38.net
>>430
Unix 用のソフトなの?

432 :名無しさん@お腹いっぱい。:04/08/24 22:51.net
>>431
is not UNIX

433 :名無しさん@お腹いっぱい。:04/08/24 23:41.net
多分エディタの種類はどうでもよくて、 /\/\*.*\*\/ とか、そんな答えを期待していたと思われ


434 :名無しさん@お腹いっぱい。:04/09/05 06:33.net
ム板の正規表現もとんと書き込みないから、テストしてみたら
書き込めた。ここもどうなんだか、書き込んでみる。

435 :名無しさん@お腹いっぱい。:04/09/06 18:18.net
ハハ*.*ハハ

436 :名無しさん@お腹いっぱい。:04/09/07 16:51.net
指定文字列A 何か 指定文字列B
という何かにヒットさせるにはどういう正規表現にすればいいですか?

437 :名無しさん@お腹いっぱい。:04/09/07 17:18.net
>>436
素で答えると「文字列A.*文字列B」だけど?そういう話?

もちろん文字列ABに特殊記号があったらどうするかとか、
.*は最長マッチでいいのとか、いろいろ細かい話はあるけど。

438 :436:04/09/07 17:21.net
自分で、
(文字列A).*{2,15}(文字列B)
とかでやってみたんですが、
マッチするのが、
指定文字列A 何か 指定文字列B
がマッチしてしまうので…

何か の部分だけを抽出しようと思ってます。

439 :名無しさん@お腹いっぱい。:04/09/07 17:55.net
後から取り出したい部分を()で囲む。(.*{2,15})みたいに。

440 :436:04/09/08 01:37.net
>>439さんの方法でも結果が変わりませんでした… 処理系が違うからかな?

とりあえず諦めて、
指定文字列A 何か 指定文字列B
をマッチさせて、指定文字列A+1文字目から 何か の文字数だけ切り取ることにします。

ありがとうございました。

441 :名無しさん@お腹いっぱい。:04/09/08 02:28.net
>>440
で、その処理系が何かを晒すつもりは毛頭無いわけですね?

442 :名無しさん@お腹いっぱい。:04/09/08 10:13.net
>>441
ハゲには無理

443 :436:04/09/08 11:58.net
何度もすいません。

C#です… 改めてやってみると>>439さんの方法でいけました。
group[1]に入ってたんですね。全体しか見てませんでした。

板違いにお騒がせしました。

444 :名無しさん@お腹いっぱい。:04/09/10 00:33.net
Perlの場合、

$_ = "いっぱい";
s/い/お/;          # おっぱい
s/い/お/g;         # おっぱお

ということでおk?

445 :名無しさん@お腹いっぱい。:04/09/10 02:41.net
  _  ∩
( ゚∀゚)彡 おっぱい!おっぱお!
 ⊂彡


446 :名無しさん@お腹いっぱい。:04/09/10 15:00:12.net
小学生のころ流行ったネタ

447 :名無しさん@お腹いっぱい。:04/09/27 06:28:21.net
性器表現

448 :名無しさん@お腹いっぱい。:04/09/27 09:23:16.net
ワロテモータ

449 :名無しさん@お腹いっぱい。:04/09/27 11:29:59.net
さんざん概出なのに・・・

450 : :04/10/13 14:29:29.net



451 :名無しさん@お腹いっぱい。:04/10/13 14:50:43.net
.*

452 :ウサチャソ:04/10/29 21:49:31.net
↑アナルは性器じゃねーよな、とか思ってよく見ると、ドット米。
イボ痔か?

453 :名無しさん@お腹いっぱい。:04/10/30 20:30:37.net
>>452
拭き忘れたウンチだよ。きっと!

454 :名無しさん@お腹いっぱい。:04/11/10 15:37:24.net
regexp

455 :名無しさん@お腹いっぱい。:04/11/26 21:14:34.net
rege*p

456 :名無しさん@お腹いっぱい。:04/12/16 23:14:21.net
正規表現で複数の単語の中に「/」があるときにヒットさせたいんですが

echo "hoge / hoge" | grep "\</\>"

でだめでした・・。だれか修正をお願いしますorz


457 :名無しさん@お腹いっぱい。:04/12/16 23:50:35.net
>>456
条件をもっと明確に定義しろ。
マルチすんな。

458 :456:04/12/17 00:16:01.net
>>457

複数の単語の中で、"/"のみで構成される単語が存在する場合のみ
ヒットさせたいのです

つまり
a b c / d
上記ようなときで下記のどの事象にもヒットさせたくはないのです
// /a a/ a/a



459 :名無しさん@お腹いっぱい。:04/12/17 01:22:18.net
>>456
http://pc5.2ch.net/test/read.cgi/linux/1101654885/957
とこっちと、どっちで続けるのかね。

460 :名無しさん@お腹いっぱい。: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


461 :名無しさん@お腹いっぱい。:04/12/17 11:22:35.net
>>460
grep と言ってもいろいろあるんだが
どの OS のどの grep よ。

462 :456:04/12/17 11:23:16.net
↑修正します

修正前)上と下の違いは、前後にスペースを含む" / "が存在するか否かです

修正後)上と下の違いは、単語 / が存在するか否かです

463 :名無しさん@お腹いっぱい。:04/12/17 11:27:31.net
>>460
> 上と下の違いは、前後にスペースを含む" / "が存在するか否かです
1) と 2) には存在しないようだが。

464 :名無しさん@お腹いっぱい。:04/12/17 11:28:10.net
>>462
「単語」とは?

465 :名無しさん@お腹いっぱい。:04/12/18 00:00:37.net
ブラケットの中でピリオドを入れる時ってメタキャラクタとして扱われますか?

[\w.]

[\w\.]
が同じ動きにになるみたいなんですけど・・・。

ちなみに、パールです。


466 :名無しさん@お腹いっぱい。:04/12/18 02:48:16.net
>>465
「みたい」じゃなくてテストコードで示してよ。

467 :名無しさん@お腹いっぱい。:04/12/18 08:58:34.net
どの言語の正規表現がどんな有限オートマトン使ってるという情報って
どこかにありますかねぇ。正規表現コンバータ作ろうかと思ってるのですが。。

NFA、DFAの違いぐらいは詳説正規表現の本でわかるのですが、実装ともなると。
オートマトンの変換に関してはコンパイラの本を参考にしてますが、
やはりかなりつらいものがありますね。たんに字句解析して作った方がいいのかなぁ。

468 :名無しさん@お腹いっぱい。:04/12/18 09:16:42.net
普通にNFA+DFAでいいじゃん

469 :名無しさん@お腹いっぱい。:04/12/21 02:13:26.net
オブジェクト指向正規表現の仕様策定はまだですか?

470 :名無しさん@お腹いっぱい。:04/12/21 14:44:45.net
>>469
聞いたことないな。
何それ?

471 :名無しさん@お腹いっぱい。:04/12/21 19:26:19.net
>>469
まかせた。

472 :名無しさん@お腹いっぱい。: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つのコレクションが取得できるの?

473 :472:04/12/22 19:38:29.net
*? つーのは最短一致という便利なキーワードなのか。
つまらん質問失礼しますた。

474 :名無しさん@お腹いっぱい。:05/01/07 22:21:40.net
下がってるので、どれ一つ、とんちでも。
rubyでは
/aa+??/ =~ "a" => 0
emacsでは
"aa+??" =~ "a" => nil
さて、こうなってしまうのは、各々がどのようなオートマトンで
解釈されているからでしょうか。

475 :名無しさん@お腹いっぱい。:05/01/08 07:36:53.net
emacsって最短マッチあんの?

476 :名無しさん@お腹いっぱい。:05/01/08 11:15:48.net
ありましゅよー
ttp://www.cs.huji.ac.il/support/emacs/elisp-help/elisp-manref/elisp_34.html

でも、{m,n}? の最短マッチはないみたい…。

477 :名無しさん@お腹いっぱい。:05/01/11 11:11:46.net
最短マッチに対応した grep ってある?

478 :名無しさん@お腹いっぱい。:05/01/11 13:31:51.net
>>477
grep が最短マッチに対応してるかどうかが問題になるケースってある?

479 :名無しさん@お腹いっぱい。:05/01/30 22:46:31 .net
[^ま]*まってかくのめんどくさい

480 :名無しさん@お腹いっぱい。:05/02/26 05:47:57 .net
あげ

481 :名無しさん@お腹いっぱい。:2005/03/30(水) 02:33:49 .net
up

482 :名無しさん@お腹いっぱい。:2005/04/19(火) 17:08:07 .net
正規表現の実装っていろいろあることにやっと気づいた漏れorz

483 :名無しさん@お腹いっぱい。:2005/05/14(土) 15:12:25 .net
ほしゅ

484 :名無しさん@お腹いっぱい。:2005/05/16(月) 16:51:45 .net
abc xyzをaxbyczにしたいのですが

485 :名無しさん@お腹いっぱい。:2005/05/16(月) 17:05:02 .net
s/abc xyz/axbycz/g

486 :名無しさん@お腹いっぱい。:2005/05/16(月) 19:33:57 .net
ワロタ


487 :名無しさん@お腹いっぱい。:2005/05/16(月) 19:34:25 .net
保守

488 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:45:20 .net
>>484
echo abc xyz |sed -e "s/^/%/; :ll; s/[%]\(.\)\(.*\) \(.\)\(.*\)/\1\3%\2 \4/; tll; s/%//;"

489 :名無しさん@お腹いっぱい。:2005/05/18(水) 00:13:40 .net
うひょー

490 :名無しさん@お腹いっぱい。:2005/05/28(土) 03:19:18 .net
うに厨として、% をめぐる動きに溜息出た…真剣にありがと 何重にも目が覚めた

491 :名無しさん@お腹いっぱい。:2005/05/28(土) 05:32:41 .net
abc xyz でも
abcdefg ABCDEFG でもできるね。すげーや。

492 : ◆2fmGY.thDg :2005/06/02(木) 22:17:25 .net
a

493 :名無しさん@お腹いっぱい。:2005/06/04(土) 23:07:23 .net
('A`)

494 :名無しさん@お腹いっぱい。:2005/06/19(日) 02:53:08 .net
Onigurumaを使っているんですが、
あるテキストデータがあります。
----- ここから
END

注釈 ○○○
注意 △△△
補足 ◎◎◎

TITLE
----- ここまで
という部分の、ENDの後の空白行からTITLEの前の空白行の部分(間の行)を削除して、
ENDとTITLEの間は1行だけの空白行にしたいです。
「END\s^[0-9a-zA-Z。-゜ぁ-んァ-ヶ亜-?]*\sTITLE」を指定してもマッチしないんですが、
これは私の正規表現の式が間違えているんでしょうか?
(複数行を1度に選択する方法を間違えている???)

495 :名無しさん@お腹いっぱい。:2005/06/19(日) 03:13:31 .net
>>494
つーか、正規表現だけ見せられても判断できないと思うんだけど。
改行処理や文字コードのオプション設定はどうしてるかとかいろいろ情報が足りない。

496 :名無しさん@お腹いっぱい。:2005/07/13(水) 09:25:56 .net
素直に、
~s/END(\s*.*?\s*)TITLE/END\n\nTITLE/sg;
じゃダメ?

497 :名無しさん@お腹いっぱい。:2005/07/13(水) 13:15:24 .net
>>496
Oniguruma の質問なわけだが?

498 :名無しさん@お腹いっぱい。:2005/07/13(水) 17:54:26 .net
…とは思ったのだが、Perl 互換らしーから、いーかなとw

てか、見つかるのむちゃくちゃ早いなww
事後ながら、oniguruma (ライブラリ)取りに行った

499 :名無しさん@お腹いっぱい。:2005/07/13(水) 19:58:46 .net
>>498
> 見つかるのむちゃくちゃ早いなww
どういうこと?


500 :名無しさん@お腹いっぱい。:2005/07/17(日) 23:17:41 .net
>494
> 「END\s^[0-9a-zA-Z。-゜ぁ-んァ-ヶ亜-?]*\sTITLE」を指定してもマッチしないんですが、
> これは私の正規表現の式が間違えているんでしょうか?
> (複数行を1度に選択する方法を間違えている???)

これのどこが、複数行を一度に選択しているの?


501 :名無しさん@お腹いっぱい。:2005/07/19(火) 19:22:13 .net
>>500
ONIG_OPTION_MULTILINE (や REG_NEWLINE や RE_OPTION_MULTILINE など) をセット
しているかどうかで複数行選択できるかどうか変わるので、
そのへんを晒せばもうちょっと状況がわかると思うのだが、
元質問者はもう既にどっかいっちゃったのだろうな。

502 :名無しさん@お腹いっぱい。:2005/09/21(水) 20:57:28 .net
正規表現で
○○ か ○○の場合と言うのはどう表現するのでしょうか?

Cで言う、 || のようなものです。

503 :名無しさん@お腹いっぱい。:2005/09/21(水) 21:07:45 .net
テンプレに何もないんだなこのスレ。
このあたりで調べろ

http://www.kt.rim.or.jp/%7Ekbk/regex/regex.html

504 :名無しさん@お腹いっぱい。:2005/09/21(水) 21:18:44 .net
\(>∀<\) キャー

505 :名無しさん@お腹いっぱい。:2005/09/21(水) 21:58:13 .net
(;`∇´))))))))))) \(>∀<\) キャー

506 :名無しさん@お腹いっぱい。:2005/09/21(水) 22:48:45 .net
俺ならこう→「\(○{2}\) か \1の場合」

507 :名無しさん@お腹いっぱい。:2005/09/21(水) 23:46:20 .net
何気に正規表現本もラッシュだな。


508 :名無しさん@お腹いっぱい。:2005/09/22(木) 00:19:11 .net
\([^ ]∀[^ ]*\)

AAみたいな正規表現を作りたいが難しい。

509 :名無しさん@お腹いっぱい。:2005/09/22(木) 02:52:41 .net
つくれてるやん!

510 :名無しさん@お腹いっぱい。:2005/09/23(金) 23:15:15 .net
∀ がメタキャラになってくれると楽しいかも


511 :名無しさん@お腹いっぱい。:2005/09/26(月) 20:32:51 .net
дも

512 :名無しさん@お腹いっぱい。:2005/09/28(水) 14:54:06 .net
ネタキャラ


513 :名無しさん@お腹いっぱい。:2005/12/09(金) 01:04:17 .net
純粋に興味の問題なんだけど、
「ある文字集合の要素が各1回ずつしか出現しない」という文字列は
正規表現で表現できる?

例えばA, B, Cの文字からなる言語を考えたとすると、
ABC ACB BAC BCA CAB CBAの6つの文字列にマッチする表現っす。

514 :名無しさん@お腹いっぱい。:2005/12/09(金) 01:08:23 .net
文字集合の濃度が有限なら
単に | でつなげばいいな。

515 :名無しさん@お腹いっぱい。:2005/12/09(金) 02:30:43 .net
いろは歌とか"a quick brown fox..."みたいなのにマッチさせる正規表現、
って書けば説明が早かったかもですね。

>>514
ひらがなの場合で47!個、アルファベットの場合で26!個の文字列を
|でつなぐってことになると思うんですが、やはりこれしか方法ないんですかね。
正規表現の長さは… アルファベットの場合でも約1京テラバイトか… orz

516 :名無しさん@お腹いっぱい。:2005/12/09(金) 09:42:38 .net
>>513
[^A]*A[^A]* ではどうよ

517 :名無しさん@お腹いっぱい。:2005/12/09(金) 09:53:24 .net
>>516
BBA にもマッチしちゃうんでは。

518 :名無しさん@お腹いっぱい。:2005/12/09(金) 09:57:44 .net
>>515
> "a quick brown fox..."みたいなのに
o 2回出てるよ。

実用を考えたら正規表現以外でやった方がいいな。

519 :名無しさん@お腹いっぱい。:2005/12/09(金) 19:50:27 .net
いろは歌って内容も傑作だよな。

520 :名無しさん@お腹いっぱい。:2005/12/09(金) 21:53:37 .net
> o 2回出てるよ。

おお、32年生きてて初めて気が付いたっす。漏れの目はfusianasanさんだ… orz

> 実用を考えたら正規表現以外でやった方がいいな。

そうことになっちゃいますかね。みなさんレスどうもでした。

521 :名無しさん@お腹いっぱい。:2005/12/11(日) 08:09:16 .net
Windowsで正規表現にマッチする文字列のみ(行全体じゃなく)を表示・保存するにはどうすればいいのでしょうか?
xyzzyとかのエディタのgrepでやろうとしたのですが、検索してもよくわかりません。
Rubyとかスクリプト言語を使わないと無理でしょうか?


522 :名無しさん@お腹いっぱい。:2005/12/11(日) 08:13:57 .net
上すいません。書きこむスレ間違えました。(プログラム板の正規表現スレに書きこんだつもりでした。)

523 :名無しさん@お腹いっぱい。:2005/12/11(日) 11:19:25 .net
ちょうど一回出るんなら何かの順序でソートして文字列が完全一致することをチェックかなあ

524 :名無しさん@お腹いっぱい。:2006/01/01(日) 11:16:33 .net
エディターの正規表現で置き換えをしたいんですが・・・
1、2、3、・・・という連番を
(1) (2) (3)というふうに置き換えたいのですが
どうしたらよいでしょうか。

525 :名無しさん@お腹いっぱい。:2006/01/01(日) 11:57:28 .net
まずは(ry

526 :名無しさん@お腹いっぱい。:2006/01/01(日) 12:39:56 .net
置換元:[1-9]
置換先:(\0)
で、できるかもよ。

527 :名無しさん@お腹いっぱい。:2006/01/01(日) 17:30:57 .net
>>526
だめでした。


528 :名無しさん@お腹いっぱい。:2006/01/01(日) 19:50:58 .net
置換元:[1-9][0-9]*
置換先:\(\0\)
こんな風にすればできるのかな?
どんな風に駄目だったかわからないけれど。

529 :名無しさん@お腹いっぱい。:2006/01/01(日) 20:02:16 .net
>>528
それもやってみましたが、検索はされるのですが、
置き換えが出来ません。(0)となってしまいます。
前回のは(となってしまいます。
エディターだから駄目なのでしょうか。


530 :名無しさん@お腹いっぱい。:2006/01/01(日) 20:09:51 .net
\0のところを、
\1
$1
にしても同じかな?

531 :名無しさん@お腹いっぱい。:2006/01/01(日) 20:13:18 .net
>>530
($1)となってしまいます。


532 :名無しさん@お腹いっぱい。:2006/01/01(日) 20:17:25 .net
そのエディタの正規表現がreference(\1とか$1とか)をサポートしてないに1票。

533 :名無しさん@お腹いっぱい。:2006/01/01(日) 21:27:04 .net
!(^^)!ピンポーンです。
ヘルプを見ていたら、referenceはサポートしていないと出ていました。
他のエディターを探すか、どうしたらいいでしょうか。


534 :名無しさん@お腹いっぱい。:2006/01/01(日) 23:17:07 .net
続きです
結局QXエディタをダウンロードして使いました。
びっくりしたのはWindows上では
正規表現というのは全然一般的ではないんですね。
勉強しようにも正規表現サポート自体が脆弱だったんですね。


535 : 【大凶】 3回目:2006/01/01(日) 23:32:29 .net
ググればなんぼでも出てきます。少し自分で考えなはれ。

536 :名無しさん@お腹いっぱい。:2006/01/03(火) 22:49:27 .net
まあやることがハッキリ決まってるんなら、
(念の為)対象ファイルのカレントディレクトリのDOS窓を開いてsed、だな。

537 :名無しさん@お腹いっぱい。:2006/01/07(土) 07:00:27 .net

{aaa}[bbb}{ccc}
という文字列から、aaa bbb cccをそれぞれマッチさせてとりだしたいので、

/¥{(.*)¥}¥{(.*)¥}¥{(.*)¥}/

としていましたが、
とりだしたい文字列のなかに、さらに{}がはいっていることがあることが
わかりました。
{aaa}[b{b}b}{ccc}
とか。
それぞれaaa b{b}b cccというかたちでとりだしたいのですが、どうしたものでしょうか。


538 :名無しさん@お腹いっぱい。:2006/01/07(土) 10:07:50 .net
>>537
sedはそのままでok

539 :名無しさん@お腹いっぱい。:2006/01/07(土) 14:56:41 .net
グループ化用のカッコにエスケープが必要だからsed「では」ダメじゃないの?
Perlならエスケープ不要なので大丈夫。

ところで>>537はテクニシャンだな。
navi2chで円マーク(¥じゃないほう)を表示させやがって…

540 :名無しさん@お腹いっぱい。:2006/01/07(土) 15:36:35 .net
>>539
ヒント:}{

541 :名無しさん@お腹いっぱい。:2006/01/07(土) 15:46:46 .net
いや、それは分かってるつもりだけど。
sedだと例えば{(aaa)}{(bbb)}{(ccc)}にマッチしちゃいますよってこと。

542 :名無しさん@お腹いっぱい。:2006/01/07(土) 17:31:15 .net
>>541
じゃあ不必要な{}()を最初にスペースに変換してからマッチさせたら

543 :名無しさん@お腹いっぱい。:2006/01/07(土) 18:58:38 .net
そんな必要ない。sedでも>>537のカッコをすべてエスケープすれば良い。
>>538の「sedは」というのが余分だっただけ。

544 :名無しさん@お腹いっぱい。:2006/01/12(木) 05:55:00 .net
郵便番号をPHPで「1234567」から「123-4567」へ整形する正規表現を教えて下さい。

545 :名無しさん@お腹いっぱい。:2006/01/12(木) 11:06:51 .net
>>544
【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/

546 :名無しさん@お腹いっぱい。:2006/01/13(金) 16:59:36 .net
すいません。
--------------------------------
#hogehoge
fugafuga 1
--------------------------------
という風に行頭が#じゃないというのを正規表現で取得したいのですが
「ではない」というのが分かりません。
bashを用いております。
以上 ご助力をお願いいたします。

547 :名無しさん@お腹いっぱい。:2006/01/13(金) 20:50:59 .net
>>546
grep -v '^#'

548 :名無しさん@お腹いっぱい。:2006/01/13(金) 21:08:39 .net
>>546
grep '^[^#]'


549 :名無しさん@お腹いっぱい。:2006/01/13(金) 21:29:57 .net
いつも思うけど、
[^#] 形式だと文字が存在してないときも除外してしまうので
面倒なことあるよね。
ディレクトリリストから
.
..
を除外しようと
[^.][^.].*
を使って一文字のファイル見逃すとか。

550 :名無しさん@お腹いっぱい。:2006/01/13(金) 21:47:30 .net
>>549
その方が便利なこともある。

551 :544:2006/01/16(月) 17:54:29 .net
ご教授ありがとうございます。
本当に助かりましたっ

552 :名無しさん@お腹いっぱい。:2006/01/22(日) 02:37:32 .net
正規表現の正規表現ってどうかきますか?
ある値が正規表現の構文に沿っているかどうかを調べたいとき。

553 :名無しさん@お腹いっぱい。:2006/01/22(日) 02:48:16 .net
入れ子があるから正規表現にはならない。
BNFを書けば3型文法に属さないこと分かるでしょ。

554 :名無しさん@お腹いっぱい。:2006/01/26(木) 11:22:53 .net
いきなりすんません
2ちゃんねるブラウザ Jane Doe Style で正規表現検索を使おうとしたけど、書き方がいまいち分かりません。
F900i という文字列だけを検索して F900is や F900iT はヒットさせないようにするには、どう書けば良いですか
ぐぐってもいまいちわからないので。。。。

555 :名無しさん@お腹いっぱい。:2006/01/26(木) 11:25:48 .net
板違い。

556 :名無しさん@お腹いっぱい。:2006/01/26(木) 11:32:56 .net
スマンです。でもスレタイ検索してもほかに質問できそうな場所なかったんけどだめですか。

UNIX 085 正規表現 (553)
プログラム 408 正規表現part2 (102)
プログラマー 283 【Regular】正規表現【Expression】 (36)

557 :名無しさん@お腹いっぱい。:2006/01/26(木) 11:36:10 .net
板違い。

558 :名無しさん@お腹いっぱい。:2006/01/26(木) 11:49:12 .net


559 :名無しさん@お腹いっぱい。:2006/01/26(木) 13:16:13 .net
>>554
Jane Doe Style とやらがどんな正規表現エンジンを使っているかにも
激しく依存する話なので、
まずはそのソフトのスレで聞いてみた方が良いと思う。

560 :名無しさん@お腹いっぱい。:2006/04/15(土) 16:30:37 .net
(・∀・)

561 :名無しさん@お腹いっぱい。:2006/04/18(火) 03:51:57 .net
onigruma... 気になる。名前が怖い。

562 :名無しさん@お腹いっぱい。:2006/04/18(火) 09:54:32 .net
nekoguruma だったら弱そうだしな

563 :名無しさん@お腹いっぱい。:2006/05/02(火) 22:56:16 .net
>>562
いろいろ運べそうじゃないか

564 :名無しさん@お腹いっぱい。:2006/05/29(月) 20:29:06 .net
正規表現厨には
grep --color


565 :名無しさん@お腹いっぱい。:2006/05/31(水) 19:33:06 .net
勉強ついでに554を考えてみた。精度に難がありそうですが、以下でどうだろう?

[^A-Zz-z0-9]*F900i[^A-Za-z0-9]*


566 :成瀬 ◆NBGqNARUSE :2006/06/16(金) 03:35:29 .net
>>565
最低限試そう。"F900iS"=~/[^A-Zz-z0-9]*F900i[^A-Za-z0-9]*/ はマッチする。
ヒント: \W \b 否定先読み

567 :名無しさん@お腹いっぱい。:2006/07/25(火) 12:40:49 .net
...
Doll ←ここから
\=\-\--\-``--`\=`-==\
\=-\=-\``\==`=`--`-=-

Egg
-=-\-=-\-\=-=--\=-=-=\
-=-\-=-=\=-=\=-=-\-=\- ←ここまで

Fruits
...

のときDoll〜Eggの項目まで抽出するにはどうしたらいいですか?
/Doll/,/Fruits/ でおおまかには抽出できるけどもっと正確に抽出したいのです

568 :名無しさん@お腹いっぱい。:2006/08/09(水) 21:11:53 .net
『詳説 正規表現 第3版』 が今月発売されるね。
邦訳版の出版は知らんけど。

569 :名無しさん@お腹いっぱい。:2006/08/10(木) 13:32:24 .net
情報サンクス。
けど、洋書なら原書のタイトル表記でよろしく。
早とちりして必死で oreilly.co.jp と amazon.co.jp 探しちゃったよー。(←あほ)

570 :名無しさん@お腹いっぱい。:2006/08/10(木) 21:53:00 .net
>>569
http://www.oreilly.com/catalog/regex3/index.html

わざわざ、邦訳版の出版は知らんって書いたのになw

571 :名無しさん@お腹いっぱい。:2006/08/18(金) 16:48:08 .net
http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/index.html
正規表現の問題集らしい

572 :名無しさん@お腹いっぱい。:2006/08/18(金) 17:01:57 .net
>>568
作者宣伝乙、
というのは冗談で、情報ありがと。
日本語版はいつ出るんだろ。

573 :名無しさん@お腹いっぱい。:2006/08/23(水) 13:58:51 .net
立ち読みとか読んだうちに入らんと思われた。

574 :名無しさん@お腹いっぱい。:2006/08/23(水) 17:31:35 .net
>>177
http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/regex-4-10.html
こんなのもあるみたいやね

575 :名無しさん@お腹いっぱい。:2006/10/05(木) 15:46:12 .net
age

576 :名無しさん@お腹いっぱい。:2006/10/16(月) 10:51:27 .net
ageとくか

577 :名無しさん@お腹いっぱい。:2006/10/17(火) 01:00:23 .net
質問させてください。

正規表現を用いたgrepをするときに、
文字列"foo"を含まない全ての行にマッチさせるためには
どのように書けばよいのでしょうか。

578 :名無しさん@お腹いっぱい。:2006/10/17(火) 01:13:12 .net
-v

579 :名無しさん@お腹いっぱい。:2006/10/17(火) 08:26:14 .net
man に書いてあるよ。

580 :名無しさん@お腹いっぱい。:2006/10/17(火) 08:26:50 .net
-v オプションを使わずに、正規表現上で「文字列"foo"を含まない」を表す方法を
聞いているんじゃないだろうか?

581 :名無しさん@お腹いっぱい。:2006/10/17(火) 09:48:51 .net
(?!foo)

582 :名無しさん@お腹いっぱい。:2006/10/17(火) 11:12:35 .net
>>581
今はgrepでの話をしてんだろ。

583 :名無しさん@お腹いっぱい。:2006/10/17(火) 13:02:02 .net
>>577
否定先読み

584 :名無しさん@お腹いっぱい。:2006/10/17(火) 13:37:52 .net
>>583
正規表現でできるものか!
先読み、後読み共に否定は貧弱

585 :名無しさん@お腹いっぱい。:2006/10/17(火) 18:14:48 .net
「一致しない」はあらゆる箇所にマッチするからね
行単位の処理とは基本的に相容れないし

正規表現でなく、-vのようなメタレベルで対処するのが正解
sedとかでもいいな

586 :名無しさん@お腹いっぱい。:2006/10/17(火) 19:17:42 .net
>>585
なんで、.*?(?!xxx) を、xxxが一切含まない行、と解釈してくれないんですかね?

587 :名無しさん@お腹いっぱい。:2006/10/17(火) 19:55:43 .net
論理的に考えてみればわかるよ

588 :名無しさん@お腹いっぱい。:2006/10/18(水) 09:59:12 .net
>>587
欲張りマッチだから、xxxが見つかった段階で一文字戻ってマッチにしちゃう?

589 :名無しさん@お腹いっぱい。:2006/10/18(水) 11:10:22 .net
>>586
解釈するわけがない

590 :名無しさん@お腹いっぱい。:2006/10/20(金) 10:45:16 .net
^(?!.*foo)
でできるだろ

http://pc8.2ch.net/test/read.cgi/tech/1156413899/l100
の1のサイトをよく読め

591 :名無しさん@お腹いっぱい。:2006/10/24(火) 10:00:30 .net
正規表現でできることの仕様ってずっとこのままなんですかね。
括弧の対を考慮した表現とかって簡単にならないかな。

592 :名無しさん@お腹いっぱい。:2006/10/24(火) 11:17:38 .net
処理系ごとに拡張してあったりするじゃん。

593 :名無しさん@お腹いっぱい。:2006/10/24(火) 11:28:08 .net
hp-uxのgrep糞だなw
\< \>が使えん。


594 :名無しさん@お腹いっぱい。:2006/10/24(火) 12:07:18 .net
grepツールで、htmlのコメント内を検索対象からはずしてgrepできるツールありますか?
コメントで死ぬほど引っかかって苦労してます。
複数行コメント中の真ん中ぐらいの行に引っかかっても、先頭に<!--がないから
普通のgrepツールだときびしいです。

595 :名無しさん@お腹いっぱい。:2006/10/24(火) 12:13:02 .net
sedしかないだろ。


596 :名無しさん@お腹いっぱい。:2006/10/24(火) 12:24:01 .net
-- の対応まで見ようとするとつらそうだ。

597 :名無しさん@お腹いっぱい。:2006/10/24(火) 21:37:54 .net
複数行になると途端にわけわからんくなるな・・・。

598 :名無しさん@お腹いっぱい。:2006/10/26(木) 05:24:59 .net
改行位置を変換する前処理をしてからやるとか

599 :名無しさん@お腹いっぱい。:2006/10/26(木) 11:38:24 .net
コメントを
s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g
で取り除いてからgrepすればいいんじゃね?

600 :名無しさん@お腹いっぱい。:2006/11/03(金) 14:20:22 .net
マルチで済まない。

同じ文字が3文字連続していたら表示したいのだが

601 :名無しさん@お腹いっぱい。:2006/11/03(金) 15:02:08 .net
>>599
>s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g
この部分はsed?
だったら、その後もgrepなんかせずに、sedだけで完結すればいいじゃん。
awkでも同じく。


602 :<sage>:2006/11/10(金) 19:30:45 .net
教えて下さい。

ダブルクオートで囲まれていない、コンマだけを置き換えたいのですが、
正規表現では、どうあらわせばいいのでしょうか?

例:
"aaa, bbb" xxxx, "ccc, ddd" yyyyyy

xxxx, <- このコンマを −> xxxx; とセミコロンにしたいです。

よろ

603 :名無しさん@お腹いっぱい。:2006/11/13(月) 23:01:55 .net
>>602
http://pc8.2ch.net/test/read.cgi/tech/1156413899/l100
のリンク先嫁


604 :<sage>:2006/11/14(火) 15:35:11 .net
>> 603
そのページのどこを読めと?

605 :名無しさん@お腹いっぱい。:2006/11/22(水) 14:36:47 .net
>>604
ほぼ全部
雑魚には無理な正規表現ってこった

606 :名無しさん@お腹いっぱい。:2006/11/22(水) 20:49:29 .net
氏ね

607 :名無しさん@お腹いっぱい。:2006/11/26(日) 13:47:54 .net
>>602

◆関連サイト
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm
Regular Expression(Riue ちゃんの正規表現講座)
http://www.sixnine.net/regexp/
正規表現パズル
http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/
詳説 正規表現
http://www.oreilly.co.jp/books/4873111307/
正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html

これだけ読めば解決できるが
池沼には無理

608 :名無しさん@お腹いっぱい。:2006/12/04(月) 14:18:49 .net
アルファベットの文字で構成されるが、「d」は入らない、を
[a-ce-z]以外の書き方で表現する方法はないですか?

もちろん↓はエラーだけど、こんな漢字で書ければいいのだけれど。

[a-z][^c]

609 :名無しさん@お腹いっぱい。: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

610 :名無しさん@お腹いっぱい。:2006/12/04(月) 22:02:59 .net
>>608
javaならできる

611 :名無しさん@お腹いっぱい。:2006/12/04(月) 22:08:51 .net
d|i|g|i|t|a|l


612 :名無しさん@お腹いっぱい。:2006/12/05(火) 09:35:00 .net
>>610
どうやるんだべさ?

613 :名無しさん@お腹いっぱい。:2006/12/06(水) 02:45:07 .net
>>612
[[a-z]&&[^d]]
こんな感じだったと思う。


614 :名無しさん@お腹いっぱい。:2006/12/06(水) 09:44:34 .net
>>613
うぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ〜、すげぇ〜。できました!
javaだとこんなのができるのか!
もちろん正規表現標準じゃないので、perlとか秀丸正規表現ではできないかぁ・・・

javaならではの裏技って他に何かあるんですかね?

615 :名無しさん@お腹いっぱい。:2006/12/06(水) 12:20:30 .net
>>614
うぉ++


616 :名無しさん@お腹いっぱい。:2006/12/06(水) 12:23:51 .net
タイプ数増えてるのは問題ないのかw

617 :615:2006/12/06(水) 12:51:07 .net
>>614
わざわざjavaで試した行動力に感服

強欲マッチといわれる615もためしてみるといい

618 :名無しさん@お腹いっぱい。:2006/12/06(水) 13:11:31 .net
java使う人ならタイプ数が増えることが問なさそう

619 :名無しさん@お腹いっぱい。:2006/12/06(水) 14:12:54 .net
>>615
うぉ+でいいんじゃないの?なんか違うの?

620 :名無しさん@お腹いっぱい。:2006/12/06(水) 17:58:50 .net
(+_+;)

621 :名無しさん@お腹いっぱい。:2006/12/07(木) 02:56:32 .net
>>619

違うよ。++が付いたほうはバックトラックしない。
Perlの (?> ...) と同じ。


622 :名無しさん@お腹いっぱい。:2006/12/16(土) 17:28:28 .net
1〜1000
までの数字から始まって最後が
C]
で終わる正規表現を教えて下さい
m(_ _)m

623 :名無しさん@お腹いっぱい。:2006/12/16(土) 17:45:19 .net
^[0-9]\{1,4\}[^0-9]*C]$
かな?


624 :名無しさん@お腹いっぱい。:2006/12/16(土) 17:55:45 .net
>>623
駄目でしたorz
正規表現の勉強してきます。
有難うございましたm(_ _)m

625 :名無しさん@お腹いっぱい。:2006/12/16(土) 19:58:43 .net
^([1-9][0-9]\{0,2\}|1000)[^0-9]*C]$
こうか?


626 :名無しさん@お腹いっぱい。:2006/12/17(日) 00:31:38 .net
タイトル:文字列 の文字列の部分だけを取り出したいのですが、
どのような正規表現にすれば良いのでしょうか?
よろしければ、ご教授を願います。


627 :名無しさん@お腹いっぱい。:2006/12/17(日) 00:34:12 .net
いろいろ出ているようだけど
[0-9].*C]
ではダメな理由がわからない

628 :名無しさん@お腹いっぱい。:2006/12/17(日) 00:52:14 .net
>>626
文..

629 :名無しさん@お腹いっぱい。:2006/12/17(日) 07:34:54 .net
>>627
全然ダメ

0000C
がヒットする

630 :名無しさん@お腹いっぱい。:2006/12/28(木) 11:54:55 .net
初歩な質問ですみませんが
[0-9a-zA-Z]で英数字にマッチするものとなると思うのですが
例えばajgko-jk-s1olのように「-」記号が入っているとマッチしません
どう記述すればよいですか?よろしくお願いします。

631 :名無しさん@お腹いっぱい。:2006/12/28(木) 11:57:12 .net
>>630
[-0-9a-zA-Z]

632 :630:2006/12/28(木) 12:01:22 .net
>>631
さんありがとうございます。
しかし上記のように記述しても読み込んでくれません・・・。
こう記述して[-0-9a-zA-Z]{10,10}
「BC-K-o58tB」これを認識してくれません。


633 :名無しさん@お腹いっぱい。:2006/12/28(木) 12:09:19 .net
どのアプリ使ってんのよ

634 :名無しさん@お腹いっぱい。:2006/12/28(木) 12:10:47 .net
>>632
ちゃんとマッチするけど・・


$ echo 'BC-K-o58tB' | egrep '[-0-9a-zA-Z]{10,10}'
BC-K-o58tB

635 :630:2006/12/28(木) 12:11:07 .net
アプリ?良くわかりませんが言語PHPです。

636 :名無しさん@お腹いっぱい。:2006/12/28(木) 12:11:52 .net
ならPHPのスレで聞いた方がいいんじゃね

637 :630:2006/12/28(木) 12:16:40 .net
PHPのスレで聞いたら正規表現に行けと言われました。orz

638 :名無しさん@お腹いっぱい。:2006/12/28(木) 14:04:02 .net
無限ループキタ━━━━━━(゚∀゚)━━━━━━ !!!!


639 :名無しさん@お腹いっぱい。:2006/12/28(木) 21:33:37 .net
PHPだとPOSIX由来の正規表現とPerl互換の正規表現があるけどどっち?
後者を使っているならpreg_match('/[-0-9a-zA-Z]{10,10}/', $str)みたいに
正規表現の前後にスラッシュが必要。

640 :名無しさん@お腹いっぱい。:2006/12/29(金) 11:07:30 .net
正規表現 part 3
http://pc8.2ch.net/test/read.cgi/tech/1156413899/


641 :名無しさん@お腹いっぱい。:2007/01/09(火) 23:17:53 .net
始めたばっかりで、3時間かかってもダメです… お助けを。

()で囲まれる任意の文字部分だけをとりたいんですが、
\(..*\) では全然ダメですね… ()もついてくるし。

*****(ABC-_)(123%&)*****(あいう)***

上の例だと、以下の3つを取りたいです。
ABC-_
123%&
あいう

642 :名無しさん@お腹いっぱい。:2007/01/09(火) 23:43:33 .net
>>641
sed -e "s/(.*)/()/g" でどうよ

643 :名無しさん@お腹いっぱい。:2007/01/10(水) 00:12:39 .net
>>642
Unix版でしたね…
Windows系でのやり方を知りたいです。

644 :名無しさん@お腹いっぱい。:2007/01/10(水) 00:19:56 .net
>>642
基礎からやり直せ。


645 :名無しさん@お腹いっぱい。:2007/01/10(水) 01:41:33 .net
>>642
なんか冗長だが...

use strict;
use warnings;
while(<>){
  s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g;
  print $_;
}

646 :名無しさん@お腹いっぱい。:2007/01/10(水) 01:42:28 .net
>>643
Windowsにもsedは移植されてるじゃん。


647 :名無しさん@お腹いっぱい。:2007/01/10(水) 01:59:51 .net
>>643
板違い。

648 :名無しさん@お腹いっぱい。:2007/01/18(木) 10:55:44 .net
>>641
正規表現でググレカス

649 :名無しさん@お腹いっぱい。:2007/02/07(水) 08:21:33 .net
すみません、以下の正規表現は何にマッチするんでしょうか?
([\011\012\014 -~]+\\|\\(\\cj\\|\n\\)+\\)
処理系はLispです。お願いします。

650 :名無しさん@お腹いっぱい。:2007/02/08(木) 02:57:00 .net
>>649
LispつかEmacs Lispだろ。先頭に \\ が抜けてないか?

[\011\012\014 -~]+   タブかLFかCRかスペースかASCIIの表示可能文字の繰り返し

\\| または

\\(\\cj\\|\n\\)+  Cjって多バイト文字でいいんだっけ? か改行の繰り返し



651 :649:2007/02/08(木) 15:45:20 .net
>>650
すみません、おっしゃる通り先頭に\\が抜けていました。
なるほど、どうもありがとうございました。

652 :名無しさん@お腹いっぱい。:2007/03/27(火) 16:10:01 .net
コンマはエスケープする必要はありますか?

We are NOVA-TOMO\, right?

653 :名無しさん@お腹いっぱい。:2007/03/27(火) 17:34:57 .net
必要ないと思った。付けても問題ないと思うけど。
むしろ?の方が…
俺詳しくないから何ともいえないけど

654 :名無しさん@お腹いっぱい。:2007/03/28(水) 01:44:02 .net
カンマはどの正規表現でもメタ文字じゃないのでエスケープの必要はない。
むしろ >>653のいうとおりで ? が要注意。

grep/sed ならエスケープなしでOK。
egrep/awk/perl その他Perl互換のものなら要エスケープ


655 :名無しさん@お腹いっぱい。:2007/04/21(土) 22:17:17 .net
当方、秀丸を使っております。
“・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか?
どうしても、「」で囲まれる前の文章もヒットしてしまうのです。

656 :名無しさん@お腹いっぱい。:2007/04/21(土) 22:55:33 .net
>>655
秀丸とやらはUnixで動くのかい?

657 :名無しさん@お腹いっぱい。:2007/04/21(土) 23:03:01 .net
げ、UNIX版でしたか!
失礼しました。

658 :名無しさん@お腹いっぱい。:2007/05/04(金) 12:21:16 .net
ニフティーのドメイン以外を拾う為に [^nifty]\.com と書くのは間違いのようですが

特定の“文字列”以外を指定するのはどーすりゃいいの?

659 :名無しさん@お腹いっぱい。:2007/05/04(金) 12:44:28 .net
否定先読みなどの拡張があればそれを使えばいいが、なくても
それ以外の文字列をすべて列挙すればなんとかなります。


660 :名無しさん@お腹いっぱい。:2007/05/04(金) 13:59:38 .net
grep -v '特定の文字列' filename


661 :名無しさん@お腹いっぱい。:2007/05/04(金) 14:35:47 .net
正規表現の話では?

([^n]....|.[^i]...|..[^f]..|...[^t].|....[^y])\.com

これが正解

662 :名無しさん@お腹いっぱい。:2007/05/04(金) 14:54:42 .net
nifty.com以外のナントカ.comにマッチさせたいのだから、

([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*)\.com

ではないか?

663 :名無しさん@お腹いっぱい。:2007/05/04(金) 14:56:11 .net
無理に正規表現でがんばるより
他の方法を探した方がいい。

664 :名無しさん@お腹いっぱい。:2007/05/04(金) 14:58:05 .net
それではniftyhoge.comにマッチしないので

([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*|nifty..*)\.com


665 :名無しさん@お腹いっぱい。:2007/05/04(金) 15:58:18 .net
perlならもうちょっと簡単?
perl -ne 'print if /(?<!nifty)\.com/'

grep -v とか否定を使うほうが素直だと思うけど。

666 :名無しさん@お腹いっぱい。:2007/05/04(金) 16:31:54 .net
ヒネクレたひとたちばかりいるスレですから

667 :名無しさん@お腹いっぱい。:2007/05/04(金) 16:44:04 .net
このスレの中くらいは正規表現原理主義でいいじゃないか

668 :名無しさん@お腹いっぱい。:2007/05/05(土) 00:26:33 .net
その為のスレなんだから当然といえば当然だろ


669 :名無しさん@お腹いっぱい。:2007/05/21(月) 19:09:39 .net
はふ

670 :名無しさん@お腹いっぱい。: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)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?


671 :名無しさん@お腹いっぱい。:2007/05/28(月) 22:48:40 .net
ここは実は分かってない奴しかいねーから無理じゃね?ww

672 :名無しさん@お腹いっぱい。: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
$

ぐらいからはじめればいい。

673 :名無しさん@お腹いっぱい。:2007/05/29(火) 01:44:17 .net
確かにみんなもっとスマートに書けないものかねえ・・・

674 :名無しさん@お腹いっぱい。:2007/05/29(火) 02:31:04 .net
^([^\s]+)(.*)([^\s]+)$

$1 $3


675 :名無しさん@お腹いっぱい。:2007/05/29(火) 03:06:51 .net
(; ^ω^)

676 :名無しさん@お腹いっぱい。:2007/05/29(火) 07:07:47 .net
むしろ正規表現使わないでreaddirとstat使うとこじゃないか?


677 :名無しさん@お腹いっぱい。:2007/05/29(火) 15:00:33 .net
$ ls -al | sed -e 's/ \{1,\}/ /g' | cut -d ' ' -f 1,9

cut 使うのは反則?

678 :名無しさん@お腹いっぱい。:2007/05/30(水) 16:06:37 .net
awk '{print $1,$9}'
で十分では無かろうかと

679 :名無しさん@お腹いっぱい。:2007/09/01(土) 07:33:23 .net
gawkでJavaソースファイル内の「識別子」単位の置き換えをしようとしていますが,
なかなかうまくいきません.
たとえば,独立して現れる「Stack」は「Queue」に置き換えるが,
「argStack」は別の識別子だから「argQueue」とは置き換えず
そのままにしておくというものです.
Javaの識別子は[_0-9A-Za-z]の文字だけから構成されるとしています.
awk以外の選択肢も含めて,よい方法がありますでしょうか?
最終的には,Javaで置換プログラムを書けばできなくもないとは思いますが,
安直な方法があればお教えください.

680 :名無しさん@お腹いっぱい。:2007/09/01(土) 08:57:42 .net
\< \> で囲っておくとか。

681 :679:2007/09/01(土) 19:15:56 .net
grepの「-w」は普通にできるのに,いざ置換で同じことをしようとすると
難しいですね.
結局Javaで処理プログラムを書きました.ありがとうございました.

682 :名無しさん@お腹いっぱい。:2007/11/21(水) 09:09:36 .net
hogeを含む行のうち^\s*'で始まらないもの
をgrepするのにvimでは
\(^\s*'.*\)\@<!hoge
でできるようなんですが、サクラで
(?<!^\s*'.*)hoge
とするとダメでした。
これをgrepするにはどうすればいいでしょうか?

サクラ(bregexp.dll)の正規表現はPerl5互換だそうなんですが。

683 :名無しさん@お腹いっぱい。:2007/11/21(水) 09:53:00 .net
板違い。

684 :名無しさん@お腹いっぱい。:2007/11/21(水) 11:08:21 .net
じゃあ
hogeを含む行のうち^\s*'で始まらないもの
にマッチするPerl5正規表現を答えよ。
とします。

685 :名無しさん@お腹いっぱい。:2007/11/21(水) 11:28:24 .net
ム板行け。

686 :情報工学ばが:2008/01/15(火) 20:48:47 .net
正規表現ってなんですか?

687 :情報工学ばが:2008/01/15(火) 20:50:24 .net
はやく!!!
単位がないんです!!

688 :情報工学ばが:2008/01/15(火) 20:51:45 .net
お願いします。。。

689 :わし:2008/01/15(火) 20:55:01 .net
わしにはわからん。


690 :名無しさん@お腹いっぱい。:2008/01/16(水) 01:21:45 .net
>>686
【サルにもわかる正規表現入門】
http://www.mnet.ne.jp/~nakama/

691 :名無しさん@お腹いっぱい。:2008/01/16(水) 12:24:11 .net
>>690
有難うございました。
おかげで単位取れそうやでー!!
ほな

692 :名無しさん@お腹いっぱい。:2008/01/17(木) 00:37:01 .net
語り手緊急募集中!!

坐禅と見性第54章 片手の他人がたたく拍手の音
http://life9.2ch.net/test/read.cgi/psy/1192448109/

【仏教】悟りを開いた人のスレ 10 【鬼和尚】
http://life9.2ch.net/test/read.cgi/psy/1200142232/

【悟りで居る】悟りを開いた人スレ【完全お釈迦様派】
http://life9.2ch.net/test/read.cgi/psy/1198295563/

萬福寺行った。1.2
http://love6.2ch.net/test/read.cgi/kyoto/1188809052/

【茶の湯】  大徳寺について  【禅文化】
http://love6.2ch.net/test/read.cgi/kyoto/1145457556/

臨済宗 大本山天龍寺 2
http://love6.2ch.net/test/read.cgi/kyoto/1183216094/

【算盤】臨済宗 妙心寺派【金権】十五日は祝聖
http://love6.2ch.net/test/read.cgi/kyoto/1198725369/

★★臨済宗・癖有り布教師さん★★
http://love6.2ch.net/test/read.cgi/kyoto/1172800156/

臨済宗国泰寺派について
http://love6.2ch.net/test/read.cgi/kyoto/1151120179/

臨済宗相國寺派について
http://love6.2ch.net/test/read.cgi/kyoto/1146749623/

693 :名無しさん@お腹いっぱい。:2008/02/24(日) 13:39:51 .net
2008-03 発売(予定)
「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円


694 :名無しさん@お腹いっぱい。:2008/02/24(日) 17:10:30 .net
バイト代が全部本で消えていく・・・

695 :名無しさん@お腹いっぱい。:2008/02/24(日) 18:03:30 .net
あるある

696 :名無しさん@お腹いっぱい。: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

と書かれた行があり 今日より以前の日付の行を削除するにはどうすればいいですか

697 :名無しさん@お腹いっぱい。:2008/02/26(火) 15:50:38 .net
それは正規表現の問題か?

698 :名無しさん@お腹いっぱい。:2008/02/26(火) 17:23:03 .net
Cの構造体のようにネストする可能性のあるものを正規表現で抽出するにはどうすればいいでしょうか?

699 :名無しさん@お腹いっぱい。:2008/02/26(火) 17:26:13 .net
無理

700 :名無しさん@お腹いっぱい。:2008/02/26(火) 21:47:00 .net
>>699
正解

701 :名無しさん@お腹いっぱい。:2008/02/26(火) 22:31:20 .net
>>696
日付の切り出しを正規表現でやって、日付の判定以降はプログラムでがんばれ。

702 :名無しさん@お腹いっぱい。: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
にするにはどうすればいいですか



703 :名無しさん@お腹いっぱい。:2008/03/06(木) 14:28:44 .net
sed -e 's,/1/,/01/,' -e 's,/2$,/02,'

704 :名無しさん@お腹いっぱい。:2008/03/06(木) 17:14:22 .net
>>703
9日近く書き込み無いのによく質問に高速で答えられますね
尊敬するとともに変態だと思います。

705 :名無しさん@お腹いっぱい。:2008/03/06(木) 17:15:08 .net
別に何日書き込みがなかろうが関係ない。

706 :名無しさん@お腹いっぱい。:2008/03/06(木) 22:36:13 .net
>>704
今時ブラウザでみてる奇特な人かな?

別にこのスレを毎日人手でチェックしてるわけじゃなくて、
専ブラの巡回リストに入ってるだけのことだと思うよ。

まあ、確かに4分でレスするのはちょっとすごいが
よくよく見たら 2007/3/3 とかは変換しない...
ほんとにそれでいいのか? >>702

707 :名無しさん@お腹いっぱい。:2008/03/06(木) 23:43:20 .net
>>703もわざとその答えにしたんだろ。
要するに質問の仕方が悪いって事だ。

708 :ウサチャソ ◆/0IEZmXnQ6 :2008/03/17(月) 21:53:04 .net
>>702
ゼロサプレス 正規表現
とか
ゼロパディング 正規表現
とかでググってみるといいかモナー
最近sedは使ってないから漏れはやり方知らんw

709 :名無しさん@お腹いっぱい。:2008/03/18(火) 14:24:00 .net
どの文字列にもマッチしない正規表現ってどう書くんでしょう?

710 :名無しさん@お腹いっぱい。:2008/03/18(火) 16:47:03 .net
(?<=a)a

711 :名無しさん@お腹いっぱい。:2008/03/19(水) 09:09:37 .net
空文字列にもマッチしない?

712 :名無しさん@お腹いっぱい。:2008/03/19(水) 23:02:47 .net
しないよ
というか自分で試せよ

713 :名無しさん@お腹いっぱい。:2008/03/21(金) 00:44:43 .net
710って、aaにマッチするよ
戻り読みの位置が違うんじゃね?


714 :名無しさん@お腹いっぱい。:2008/03/21(金) 20:07:35 .net
(?!a)a
こうかな

715 :名無しさん@お腹いっぱい。:2008/06/02(月) 10:30:14 .net
Vimでファイルの中からhttpで始まり、htmlで終るURLを抜きだしたいのですが、
どのようにすれば可能でしょうか?
いろいろと試してはいるのですが、行中の最大にマッチする等なかなかうまくできません。

716 :名無しさん@お腹いっぱい。:2008/06/02(月) 11:38:21 .net
最短でマッチさせたらさせたで、
ディレクトリのどこかに .html があると破綻する

717 :名無しさん@お腹いっぱい。:2008/06/03(火) 08:27:21 .net
emacs(の置換)と
perlのそれぞれで、

「日本語の文字列」を指定する正規表現が知りたいのですが、
どこを見ればよいでしょうか?

「ASCII文字を含まない文字列」でもOKです。


718 :名無しさん@お腹いっぱい。: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::).


719 :名無しさん@お腹いっぱい。:2008/06/03(火) 14:36:53 .net
>>718

ありがとうございます。emacsのinfoではなく、
elisp infoにあるんですね。

「日本文字にはさまれたascii空白」を検索したかったので、

emacsでは"¥cj ¥cj" でだいたいよさそうです。

(どういうわけか
[:multibyte:]や[:nonascii:]
という指定は
C-u C-s などではうまく動いてくれないようなのですが・・・
(ascii文字の一部にマッチしてしまう)


720 :名無しさん@お腹いっぱい。:2008/06/03(火) 14:41:33 .net
>>719
> (どういうわけか
> [:multibyte:]や[:nonascii:]
> という指定は
> C-u C-s などではうまく動いてくれないようなのですが・・・
> (ascii文字の一部にマッチしてしまう)

[[:multibyte:]] としんとだめやよ。

721 :名無しさん@お腹いっぱい。:2008/06/03(火) 18:33:15 .net
あ、そういうことか!どもです。

722 :名無しさん@お腹いっぱい。:2008/09/04(木) 15:15:43 .net
ttp://codezine.jp/article/detail/1573
やたら難しいのですが。
詳説正規表現を読めば、解けるようになりますかね?


723 :名無しさん@お腹いっぱい。:2008/09/05(金) 01:34:49 .net
>>722

難しいか? それ。


724 :名無しさん@お腹いっぱい。:2008/09/18(木) 18:37:47 .net
>>722
プログラミングperlの正規表現の解説部分を
読んでもなんとかなるかも(´・ω・`)

725 :名無しさん@お腹いっぱい。:2008/09/28(日) 20:34:23 .net
>>722
詳説正規表現は文字通り「詳説」。
正規表現を使うことが目的の人にはヘビーすぎる。


726 :わいきむら:2008/10/20(月) 09:09:22 .net
空の文字クラス'[]'はどういう意味になりますでしょうか?
あと'-'が文字クラスの最後にある場合もダッシュとマッチせよ
という意味になるのでしょうか?

727 :わいきむら:2008/10/20(月) 09:12:46 .net
すみませんダッシュじゃなくてハイフンですか

728 :船木康博:2008/10/20(月) 09:14:08 .net
さーてと、
パソコンに於ける衛生面についてカキコして、
とりあえずここらでアクティブソナーにQSYするかなー♪

・VDT症候群に注意。
・腱鞘炎に注意。
・大音量による聴覚障害に注意。

マウスは玉の有り無しで、オスとメスがあるでよ。
光にも種類があるし、トラックボールもあるし。たまには玉の辺りの掃除でもしてやってくれ。
ボタンも林檎の1個や米窓の2個じゃなくて、SUNあたりなら3個あったんじゃねぇかなぁ。
最近じゃあ、ホイールも回転方向以外に左右に振れるのもあるでよ。

最後は、鍵盤だ。雑菌が繁殖して、便所より汚いモノもあるでなぁ。
病気移しちゃあいけねぇで、触らせる相手は自分で判断して制限しろよ。
おいもかはまぐり触った手かもしれねぇし、汁がとんでるかもしれねぇからな。

729 :名無しさん@お腹いっぱい。:2008/10/21(火) 02:39:30 .net
>>726

中身が空の [] はわからんが、末尾のハイフンはその通り。
範囲指定じゃなくてハイフンそのものとして解釈される。


730 :名無しさん@お腹いっぱい。:2008/10/22(水) 17:48:58 .net
質問させてください。

Fortranのコードから、「subroutine abc()」「 subroutine abs()」のような
サブルーチンの開始行だけをgrepで抽出したくて
grep ^\s*subroutine ./*.f90
と書いたのですが、「 subroutine」で始まる行がマッチしていないようです。
どのようにしたらこれをマッチさせられるか教えてください。

ちなみに、コード内には
「! subroutine abc()」「!subroutine abc()」なども含まれています。

731 :730:2008/10/22(水) 19:23:26 .net
>>730どなたか、ほんとお願いします!!

732 :ウサチャソ ◆/0IEZmXnQ6 :2008/10/22(水) 21:00:29 .net
>>730
' とか " で括ってないとか?

話逸れるけど、grep は egrep が一番速いらしいよ。
egrep は「(・∀・)イイ!! 」grep!
なんっつってw

はぁ〜…

733 :730:2008/10/22(水) 21:25:28 .net
>>732そのとおりでした。

grep "^\s*subroutine" ./*.f90
としたらうまくいきました、ありがとうございます。


.....なんでこんなことに.....orz orz orz

734 :名無しさん@お腹いっぱい。:2008/10/23(木) 03:40:28 .net
「(・∀・)イイ!! 」grep!

735 :名無しさん@お腹いっぱい。:2008/11/08(土) 14:16:27 .net
ムズいなこれ

http://codezine.jp/article/detail/3039
http://codezine.jp/article/detail/2676


736 :名無しさん@お腹いっぱい。:2008/11/15(土) 20:26:45 .net
機能的にegrepのが遅そうな気がするけど

737 :名無しさん@お腹いっぱい。:2008/11/19(水) 14:37:34 .net
>>735
正規文法(正規言語)には定義があるけど
正規表現に「数学的に厳密な定義」は存在しないと思うんだけどねー
まあ>>51でがいしゅつだったからどうでもいいや


738 :名無しさん@お腹いっぱい。:2009/04/26(日) 16:15:06 .net
教えていただけますでしょうか。

1(文字列A)文字列B

というものを
(文字列A)文字列B

にするのはどう書けばよいのでしょうか。
文字列A、文字列Bとも長さは不規則です。

739 :名無しさん@お腹いっぱい。:2009/04/30(木) 17:32:03 .net
sed 's/^.//'

740 :名無しさん@お腹いっぱい。:2009/04/30(木) 17:38:33 .net
すみませんが詳しい方のみ回答をお願いします

741 :名無しさん@お腹いっぱい。:2009/04/30(木) 18:41:27 .net
日本語や英語など特定の文字列をgoogle検索のリンクにしたいです。
例えば、「正規表現」という文字列をgoogleのリンクにしたい場合だと、

正規表現(せいきひょうげん、regular expression)とは、
文字列の集合を一つの文字列で表現する方法の一つである。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
<a href="http://www.google.co.jp/search?q=%90%B3%8BK%95\%8C%BB">正規表現</a>
(せいきひょうげん、regular expression)とは、
文字列の集合を一つの文字列で表現する方法の一つである。

としたいです。ただし
・繰り返し1語1語適用することで複数の単語をリンク化する
 または一発で複数の単語をリンク化する方法でもいい
・すでにリンクされているものを二重にリンクしない
・タグ内の文字列はリンク化しない
・英語は文章内の単語が完全一致すればリンク化し、
 日本語は部分一致したらリンク化する
・英語の連語には対応しなくていい。
・リンク化したい文字列が「正規」「正規言語」などのように
 「正規」⊂「正規言語」という関係のものは想定しない
使う言語はAWK、Sed、Perlのいづれかとする。

お願いします。

742 :名無しさん@お腹いっぱい。:2009/04/30(木) 19:14:08 .net
その質問は正規表現スレで扱う範囲を越えてます。

743 :名無しさん@お腹いっぱい。:2009/05/18(月) 22:21:54 .net
8桁の10進数を文字列とみなしたとき、
下2桁が"00"でない文字列をヒットしたい。如何すればよいか?

744 :名無しさん@お腹いっぱい。:2009/05/18(月) 22:33:28 .net
[0-9]{6}[1-9]{2}

745 :名無しさん@お腹いっぱい。:2009/05/19(火) 08:56:24 .net
[1-9][0-9]{5}([0-9][1-9]|[1-9][0-9])

746 :名無しさん@お腹いっぱい。:2009/06/03(水) 22:23:08 .net
正規表現でアルファベット6文字というのはどう書けばいいでしょう?

[A-z][A-z][A-z][A-z][A-z][A-z]

これじゃださいですよね?

747 :名無しさん@お腹いっぱい。:2009/06/04(木) 09:42:14 .net
[A-z]{6}

748 :名無しさん@お腹いっぱい。:2009/06/04(木) 09:57:06 .net
[A-z]だと[\]~_`を含むよ。[A-Za-z]{6}にしなはれ

749 :名無しさん@お腹いっぱい。:2009/06/04(木) 10:22:05 .net
POSIX 正規表現が使えるなら [[:alpha:]]{6} とか。

750 :名無しさん@お腹いっぱい。:2009/06/04(木) 10:29:36 .net
POSIX文字クラスはロケール依存の罠があるから避けた方が無難と思う

751 :名無しさん@お腹いっぱい。:2009/06/05(金) 02:21:52 .net
POSIX 文字クラスって [[:isalpha:]] みたいのを言うんじゃなかったっけ?



752 :名無しさん@お腹いっぱい。:2009/06/05(金) 02:23:34 .net
おっとなんか馬鹿なこと書いてしまった。

[a-z] も locale でどうマッチするかかわったりするよ?


753 :名無しさん@お腹いっぱい。:2009/06/13(土) 13:28:45 .net
ホント? \w とかなら変わると思うけど、
[a-z] は locale に依らず ASCII コードの範囲になるのでは?

754 :名無しさん@お腹いっぱい。:2009/06/17(水) 02:14:08 .net
書き込み禁止されてた。

>>753
どのUNIXでもそうなるとは断言できないけど、locale が en_us.UTF-8 とかのときに
a-z が aAbB….yYz な集合になるものもあるよ。

POSIX的には コード順だと定義はしてはいなかったはず。



755 :名無しさん@お腹いっぱい。:2009/06/17(水) 08:44:18 .net
文字列の範囲はロケールに依存する。例えば、エストニア語のアルファベット
では、s の後に z があり、その後は t、u、v、w、x、y と続くので、[a-z] で
はすべての小文字のアルファベットにマッチしない

756 :名無しさん@お腹いっぱい。:2009/06/22(月) 05:54:23 .net
うふふ

757 :名無しさん@お腹いっぱい。:2009/06/25(木) 21:28:07 .net
>>754
それはlocaleの問題でもOSの問題でもないだろ
例えばlgrepはデフォルトがcase insensitiveだし


758 :名無しさん@お腹いっぱい。:2009/06/26(金) 17:56:44 .net
>>757
問題が理解できてないようだな。君は話に加わらなくて良いよ。

759 :名無しさん@お腹いっぱい。:2009/06/26(金) 18:09:55 .net
それだけだとかわいそうなので補足すると、
>>754 が言ってるのは case sensitivity の問題じゃないよ。

>>754 のレスの「aAbB….yYz」をよーく目をこらしてみてごらん。
ロケールによってはこういう不思議現象が起こるのよという話。

760 :名無しさん@お腹いっぱい。:2009/07/13(月) 21:38:46 .net
ジオ落ちててonigurumaのソースが落とせん。
だれかミラー的なもの知らない?

761 :名無しさん@お腹いっぱい。:2009/07/13(月) 21:50:51 .net
いや、あったは、ミラー。<mirrorservice.orgとか

762 :名無しさん@お腹いっぱい。: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'

763 :名無しさん@お腹いっぱい。:2009/09/19(土) 19:51:30 .net
こうやれば望みどおりの結果は出たのですが、
汎用性が低いのでもっとちゃんとしたのを作るにはどうしたらいいですか?

#!/bin/awk -f
BEGIN { FS="((|)|\\(|\\)|、| | +)" }
{
{print $1"("$3"、"$2$4")";}
}

764 :名無しさん@お腹いっぱい。:2009/12/05(土) 13:45:25 .net


765 :名無しさん@お腹いっぱい。:2010/06/02(水) 05:32:30 .net


766 :名無しさん@お腹いっぱい。:2010/06/02(水) 17:20:06 .net
http://arrow3.way-nifty.com/shige/images_pc/RegExp.png
http://www.codezine.jp/static/images/article/1655/config.jpg
http://mckyblog.img.jugem.jp/20090724_436625.png
http://www19.atpages.jp/imagelinkget/get.php?t=v&u=makotowatana.ld.infoseek.co.jp/VBScriptRegularExpressions.png
http://makotowatana.ld.infoseek.co.jp/text.gif


767 :名無しさん@お腹いっぱい。:2010/09/23(木) 21:58:59 .net
行頭にある>以外の>を置換したいのですが、どのように記述できるでしょうか?


768 :名無しさん@お腹いっぱい。: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";'

769 :名無しさん@お腹いっぱい。:2010/10/03(日) 22:07:49 .net
>>767
行頭にもし「>」が複数有れば二ツ目以降を削除する処理と
「>」以外が一文字以上続いてから「>」が一文字以上出現する文字列を
「>」以外が一文字以上続いている部分に置換する。
以上。

770 :名無しさん@お腹いっぱい。:2010/10/10(日) 09:52:22 .net
>>769
性器表現で書けよニダ

771 :名無しさん@お腹いっぱい。:2010/10/11(月) 21:58:34 .net
>>770

^>>+とか[^>]+とか
あえて書くことに意味は無いし、
削除や置換は正規表現では書けない。

文章の表面ではなく、コンテキストを嫁。

772 :名無しさん@お腹いっぱい。:2010/12/12(日) 10:48:21 .net
/RegEx/ - 便利な正規表現、みんなで共有
http://regex.gkbr.me/

773 :名無しさん@お腹いっぱい。:2011/01/11(火) 08:29:20 .net

EmacsとpTeXを使っています。
pTeXでは日本語の括弧はいわゆる全角で書かないときれいに出ないみたいなので、
「(日本語)」のような表現を一発で「(日本語)」のように変換したいたと思うのですが、
これはどう書けばいいのでしょうか。

(日本語abc)や(Abc日本語)や(Abc日[改行コード]本語)のようなものにも
対応しなければならないような気がします。(abc)のようなのはそのままにしておきたいです。
てことは、 「両端が()で、()のなかにmultibyte文字が1文字でも入っているもの、複数行にも
マッチする」という条件でよさそうなのですが、どうでしょうか。

"([[:multibyte:]]+)"で(日本語)の形のやつまではわかったのですが、
その先に進めません。PerlのスクリプトでもOKですので教えてもらえないでしょうか。



774 :名無しさん@お腹いっぱい。:2011/01/11(火) 15:02:53 .net
>>773
入れ子になった括弧には未対応。
(replace-regexp "(\\([^\\(]*[[:multibyte:]][^\\)]*\\))" "(\\1)")

# pLaTex で otf 使えば大丈夫だったような?

775 :名無しさん@お腹いっぱい。:2011/01/11(火) 17:55:06 .net
ありがとうございます。うまく動くようです。

OTFパッケージの方は実験してみましたがやっぱり()と()は区別しているような・・・

776 :名無しさん@お腹いっぱい。:2011/03/12(土) 12:19:28.18 .net
apacheのmod_rewriteでURLを書き換えたいと思っています。
以下が.htaccessのコードになります。
-------------------------------------------------------------------------
RewriteEngine On
RewriteRule ^([a-z0-9_-]+).htm$ execute.php?id=$1
-------------------------------------------------------------------------

例えば、”http://moge/test.htm”にアクセスすると”http://moge/execute.php?id=test”と同じようになるというものです。
ディレクトリにはexecute.phpの他にindex.htmを置きたいと思っているのですが、上のhtaccessを設置すると、”http://moge/execute.php?id=index”に飛ばされてしまいます。そこで、正規表現で特定の単語(index)を除外するにはどうすればいいのでしょうか?
ご回答お願いします。

777 :名無しさん@お腹いっぱい。:2011/03/12(土) 14:53:45.34 .net
Rewriteが htmなら

index.html ファイルにする

778 :776:2011/03/12(土) 15:37:35.48 .net
>>777
あ、なるほど
確かにそれでもいけますね
さんくすです

ちなみに正規表現で特定の単語だけ除外っていうのはできないのでしょうか??

779 :名無しさん@お腹いっぱい。:2011/03/16(水) 20:14:08.75 .net
否定先読みでおk
あとマルチ乙

780 :名無しさん@お腹いっぱい。:2011/03/29(火) 11:43:28.27 .net
すっごく基本的なことで申し訳ないんだけど
aaaを含んでいてbbbを含まない行
ってのはどう書くんですか。

781 :名無しさん@お腹いっぱい。:2011/03/29(火) 12:00:15.87 .net
それは正規表現だけでやらなきゃだめなのかい?

782 :名無しさん@お腹いっぱい。:2011/03/29(火) 12:06:43.95 .net
grepでログの特定行を抽出したくて

783 :名無しさん@お腹いっぱい。:2011/03/29(火) 12:20:13.45 .net
grep -v

784 :名無しさん@お腹いっぱい。:2011/03/29(火) 12:29:14.56 .net
>>782
GNU grep で grep aaa logfile | grep -v bbb ってのじゃだめ?

785 :784 :2011/03/29(火) 12:30:38.86 .net
かぶったか

786 :名無しさん@お腹いっぱい。:2011/03/29(火) 12:47:45.98 .net
ああ、そっか。-v
ありがと

787 :名無しさん@お腹いっぱい。:2011/04/08(金) 01:34:57.59 .net
vimの置換で以下のようなデータを置換したいです
hoge(半角空白*****)\tsage\t

hoge\tsage\t

:%s/ //g だとhogeが ho ge だったりもするので
半角空白が続く\tを\tにしたいです。
どなたかご教示お願いします

788 :名無しさん@お腹いっぱい。:2011/04/08(金) 02:09:54.62 .net
>>787
:%s/ \+\t/\t/g
とか?

本当にやりたいのは gg=G とか Align じゃないの

789 : 忍法帖【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]]
とやってみたのですがうまく行きません。(´;ω;`)
どう表現すればいいでしょう。

790 :名無しさん@お腹いっぱい。:2011/06/22(水) 17:10:25.90 .net
.

791 :名無しさん@お腹いっぱい。:2011/06/22(水) 17:38:34.78 .net
>>789
むしろ含みたくない文字を列挙したほうが早いんじゃね?

792 :名無しさん@お腹いっぱい。:2011/06/23(木) 00:03:09.64 .net
>>789
それは印字可能な文字から空白を除いたものなんじゃあないのかい

793 :名無しさん@お腹いっぱい。:2011/07/08(金) 22:03:29.79 .net
肯定条件と否定条件、常にペアで考えたいところです

794 :名無しさん@お腹いっぱい。:2011/08/03(水) 03:28:35.00 .net
>>787

:%s/\(半角空白\**\)//g

・・・ではなくて、Excelでいう所のtrim関数みたいな動作か?

795 :名無しさん@お腹いっぱい。:2012/03/07(水) 21:00:09.49 .net
gsedをターミナルで実行したとき、
丸数字の1〜20が[\x{2460}-\x{2473}]でマッチせず
「無効な範囲の終端」というエラーメッセージが出ます。
何を間違えているのでしょうか。


796 :名無しさん@お腹いっぱい。:2012/03/07(水) 22:36:48.15 .net
>>794
> :%s/ //g
当人がチャレンジした結果がこれだから、タブ区切りの各値をtrimしたいんだろうと思うよ。

> 半角空白が続く\tを\tにしたい
ってことだから>>788でいいと思う。でも>>788の後半は違うと思う。

797 :名無しさん@お腹いっぱい。:2012/03/07(水) 22:41:28.98 .net
このスレ最近見てたと思ってたのに、8月だと…

798 :名無しさん@お腹いっぱい。:2012/03/08(木) 05:24:46.29 .net
>>795の自己レス
よく解らないのだけど、コードでなくそのまんま@からS(文字化けしていたらごめんなさい)
まで、1行ずつの置換行を書き並べたらうまくいきました。
コードだと1行ずつ書いてもダメでした。エラーは出なかったからコード間違えたかな。


799 :名無しさん@お腹いっぱい。:2012/05/27(日) 23:08:25.45 .net
linuxのgrepでgreenとつく単語を検索したいのですが、どういう正規表現を使えばよいのでしょうか

800 :名無しさん@お腹いっぱい。:2012/05/28(月) 08:03:03.12 .net
>>799
くだらねえ質問はここに書き込め! Part 200
http://engawa.2ch.net/test/read.cgi/linux/1335349596/

801 :名無しさん@お腹いっぱい。:2012/11/13(火) 18:47:33.56 .net
リンゴ 1個
ミカン 2個
イチゴ 1個
スイカ 1個
スイカ 3個
ナシ
トマト
トマト
トマト
パイナップル

802 :アップミス失礼しました:2012/11/13(火) 18:51:10.04 .net
リンゴ 1個
ミカン 2個
スイカ 1個
スイカ 3個
イチゴ 2個
トマト 1個
トマト 3個
トマト 5個

リンゴ 1個
ミカン 2個
スイカ 1個 3個
イチゴ 2個
トマト 1個 3個 5個
のように整理したいとき、正規表現で実現可能ですか?

803 :名無しさん@お腹いっぱい。:2012/11/13(火) 21:24:23.96 .net
何言ってんだ。

804 :名無しさん@お腹いっぱい。:2012/11/14(水) 02:50:13.58 .net
>>802
例えば
sed
http://toro.2ch.net/test/read.cgi/unix/1085730992/l50

805 :名無しさん@お腹いっぱい。:2012/11/16(金) 20:13:34.67 .net
リンゴ 1個
スイカ 1個
ミカン 2個
スイカ 3個
イチゴ 2個

元データがこうなってない前提ならできるかもしれない

806 :名無しさん@お腹いっぱい。:2012/11/16(金) 21:56:43.28 .net
なってても出来ないことはないと思える

807 :名無しさん@お腹いっぱい。:2012/11/17(土) 00:18:53.21 .net
いや、正規表現どうこうって話じゃないだろ

808 :名無しさん@お腹いっぱい。:2012/11/17(土) 03:31:10.85 .net
まあ、そうだね

809 :名無しさん@お腹いっぱい。:2012/11/17(土) 15:01:28.93 .net
出発点になるテキストが規則的であればあるほど作業が楽になる。

810 :名無しさん@お腹いっぱい。:2012/11/17(土) 16:45:39.64 .net
sedスレで聞いてないね。perlやawkなど、どこか他で見た? ってか、本人どうしたの?

811 :名無しさん@お腹いっぱい。:2012/11/18(日) 02:35:29.83 .net
釣りだったようだな。

812 :802:2012/11/20(火) 15:26:50.28 .net
いろいろ研究中ですが、釣りじゃありませんw
他のスレにまで投稿すると、マルチで蹴られてしまうからです。

813 :名無しさん@お腹いっぱい。:2012/11/20(火) 16:03:55.39 .net
マルチは同じ話題が並行して進行するのが問題。
ちゃんと移動すればマルチじゃないよ。

814 :名無しさん@お腹いっぱい。:2012/11/20(火) 18:49:22.20 .net
以下のような文章があったとします。
〜aaa〜bbbaaa〜bbbaaa〜bbb〜
(〜は文字数の定まっていない文字列を表しています。)
ここから、それぞれ最初のaaa〜bbbだけを抽出、真ん中のaaa〜bbbだけを抽出、最後のaaa〜bbbだけをで抽出したい時、どう正規表現で表せばよいのでしょうか?

815 :名無しさん@お腹いっぱい。:2012/11/20(火) 20:13:44.36 .net
sedじゃだめなのかよ

816 :名無しさん@お腹いっぱい。:2012/11/21(水) 02:55:30.50 .net
「aaa」と「bbb」を例えば「【」「】」に置き換えてみると楽かも。
【があって、】以外のものがあるかないかして、】があったとき
が検索パターンってことになるよね。ここまでが正規表現。
その後は、1回目にマッチしたときだけ吐き出す、最後にマッチしたものだけ……
は、何を使うかで変わってくる。

817 :名無しさん@お腹いっぱい。:2012/11/21(水) 07:09:17.34 .net
>>816
「【」「】」に置き換えるんじゃなく、「aaa」と「bbb」の例でお願いします。
「【」「】」みたいな1文字じゃなく、「aaa」「bbb」みたいな複数文字なので。
しかも、「aaa」と「bbb」の間に普通の文字としてa bもあります。

818 :名無しさん@お腹いっぱい。:2012/11/21(水) 08:20:17.05 .net
こいつ、何もわかってない

819 :名無しさん@お腹いっぱい。:2012/11/21(水) 10:34:37.69 .net
perlの正規表現使わないと無理だと思うよ。

820 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:10:04.60 .net
こんな感じかな?
aaa[^b]*\(b\{0,2\}[^b]\+\)*b\{0,2\}bbb

821 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:16:22.41 .net
>>813の直後なのにマルチ

822 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:18:53.62 .net
移動してるからマルチじゃないだろ

823 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:27:34.16 .net
もっとタイムリーに本人出てこないとダレるわ

824 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:41:33.62 .net
>>822
http://toro.2ch.net/test/read.cgi/tech/1340383120/421

825 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:43:27.15 .net
>>824
おお、なるほど。
そんなところにも正規表現スレあったのか。

826 :名無しさん@お腹いっぱい。:2012/11/21(水) 11:48:07.59 .net
マルチか。もう知らん。

827 :名無しさん@お腹いっぱい。:2012/11/21(水) 19:22:47.43 .net
別人だと言ってるけど、それにしては似すぎ

828 :名無しさん@お腹いっぱい。:2012/11/21(水) 19:39:46.55 .net
こっちの見て書いたんだろ。
別人だとしてもマルチと変わらんな。

829 :名無しさん@お腹いっぱい。:2012/11/21(水) 19:53:25.11 .net
ここにもある。なんか、もうやだw

シェルスクリプト総合 その21
http://toro.2ch.net/test/read.cgi/unix/1352973453/l50

830 :名無しさん@お腹いっぱい。:2012/11/21(水) 19:55:53.48 .net
というよりシェルのが大元なのか。まあ、移動すると書いてあるからいいか。

831 :名無しさん@お腹いっぱい。:2012/11/21(水) 23:32:17.64 .net
こっちの奴は句読点付けてるのな

832 :名無しさん@お腹いっぱい。:2012/11/22(木) 00:06:51.47 .net
> シェルスクリプトスレより誘導されてきました
って書いてあんじゃん。ってかなんでこっちのスレで話を続けてるのかがわからん。
マルチうざい放置でスルーしよ

833 :名無しさん@お腹いっぱい。:2012/11/22(木) 00:32:49.10 .net
どっちが偽物とか関係なく、向こうの正規表現スレだけで進行させときゃ済む話だしな

834 :名無しさん@お腹いっぱい。:2013/03/08(金) 21:56:18.88 .net
すみません
(1)
(2)
(30)
(50)
(123)
(256)
こんな感じのデータを
(001)
(002)
(030)
(050)
(123)
(256)
こんな感じで変換するのはどうしたらいいんでしょうか?

835 :名無しさん@お腹いっぱい。:2013/03/09(土) 00:11:09.75 .net
sed -e 's/(\([0-9]\))/(00\1)/' -e 's/(\([0-9][0-9]\))/(0\1)/'

836 :名無しさん@お腹いっぱい。:2013/03/09(土) 08:01:38.44 .net
すみませんが詳しい方のみ回答をお願いします

837 :834:2013/03/09(土) 08:24:40.01 .net
>>835
うまくいきましたありがとうございました。"-e"でスクリプトを2つ記述すればよかったんですね
なんか頭が固くて思いつきませんでした…。助かりました。

838 :名無しさん@お腹いっぱい。:2013/03/09(土) 11:33:06.26 .net
パイプもあるでよ

839 :名無しさん@お腹いっぱい。:2013/03/10(日) 04:11:12.59 .net
>>834, >>836-837
二度とこのスレに来るな。(俺が>>835でないのは命を懸けて誓う)

840 :名無しさん@お腹いっぱい。:2013/03/10(日) 12:21:19.60 .net
このスレに来るな。(キリッ
命を懸けて誓う(キリッ

2ちゃん初めてか? 肩の力抜けよ。

841 :名無しさん@お腹いっぱい。:2013/03/10(日) 15:01:39.61 .net
そりゃ>>835ではないだろ。

842 :名無しさん@お腹いっぱい。:2013/03/10(日) 18:41:45.07 .net
しかし>>836の悪態はへどがでる

843 :名無しさん@お腹いっぱい。:2013/03/10(日) 19:19:40.33 .net
836 はウニ板で普通に見かける煽りレスだろ

844 :名無しさん@お腹いっぱい。:2013/03/12(火) 21:07:11.26 .net
質問です
正規表現使うとだーって英文テキストの変換が出来るじゃないですか
そこで各英単語の頭文字のみをわーって大文字に変換したいんです
出来ますの?勿論ググりましたが、当方馬鹿なのでわかりません
サルでも分かるような回答を強く期待します
僕はこういう小バカにしたような書き方しか出来ませんが、凄く切実に知りたいです
さぁどうぞ↓

845 :名無しさん@お腹いっぱい。:2013/03/12(火) 21:36:04.74 .net
>>844
引用符の中の単語はどう扱いますか?
``internationalization'' 等の長い単語が改行処理で ``-'' を使用して
分割された場合はどう扱いますか?
などなど, 例外事項が多々発生します.
すべての例外事項を網羅した上で, 各条件の対応方法を明記した上で
再質問したください.

846 :名無しさん@お腹いっぱい。:2013/03/12(火) 21:40:19.06 .net
>>844 だけで答えられる方によるサルでも分かるような回答を強く期待します
さぁどうぞ↓

847 :名無しさん@お腹いっぱい。:2013/03/12(火) 22:16:49.08 .net
こいつネタであちこちに書いてるやつだから
まともに相手してもムダだよ。

848 :名無しさん@お腹いっぱい。:2013/03/12(火) 23:24:14.34 .net
>>844
> 正規表現使うとだーって英文テキストの変換が出来るじゃないですか
いや?

849 :名無しさん@お腹いっぱい。:2013/03/13(水) 04:58:06.84 .net
大抵のアプリケーションにはデフォルトで付いてる機能だよな。
MS-Wordとかさw

850 :名無しさん@お腹いっぱい。:2013/03/13(水) 08:04:10.12 .net
>>845
横レス済まんが、仮にクォーテーションやハイホネーション無視でいいから
単語1文字目を大文字に、って要求だったら、あんた答えられるのかね?

851 :名無しさん@お腹いっぱい。:2013/03/13(水) 09:38:14.58 .net
>>850
いや
それがなにか?

852 :名無しさん@お腹いっぱい。:2013/06/14(金) 04:31:45.66 .net
<
じゃね? 単語の始まり

853 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
何かネタないの?

854 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
先日、他部署を交えて開かれた社内技術交換会でのこと。
先輩は自分が開発担当したあるソフトのコーディング中に思いついたという
ある文字列処理のプログラミングについて得意気に解説し始めた。
話し始めてしばらくして、隣の部署の人が口をはさんだ。
「それ、正規表現使えば済む話ですよね。スクリプトならsedとかで、
C言語からならregex(3)の関数群呼べばいいし。ウチでも昔はそれ専用の
文字列処理をいちいちコーディングしてたこともありますが
今ではregex(3)ばかり使ってます。ところで今日のお話というのは、
regex(3)を改良する方法か何かですか?」
そのあと先輩の話は支離滅裂になり、何の技術交換会だったのか
よく覚えていない…

855 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
勉強会だったら別にいいじゃん
文字列処理に役立たなくてもコーディング技術の勉強になれば
正規表現のライブラリが使えるのと正規表現のロジックを編み出すのは全く別の話
なんで別の部署の奴は得意げなんだ?
正規表現の存在を知ってる俺カッケーってこと?

856 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
コピペニマジレスカコワルイ

857 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
↓ヤンクがどうたら

858 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
コピペすなわちコピー&ペーストはWindoze用語。
UNIX(vi)ではヤンク&プットなのでヤンプと言う。

この用語を間違えて使用しているとドザと思われて馬鹿にされるので
気を付けるように。

859 :名無しさん@お腹いっぱい。:2013/07/15(月) NY:AN:NY.AN .net
(´・ω・`)ノ ハーイ!

860 :名無しさん@お腹いっぱい。:2013/08/30(金) NY:AN:NY.AN .net
家畜人ヤンプ

861 : 【中吉】 :2013/09/01(日) 04:33:31.70 .net
\(..*\) ←どうしたって顔文字に見えちゃうよねぇ

862 :名無しさん@お腹いっぱい。:2013/09/01(日) 07:39:33.31 .net
ホスト規制で使用する正規表現の「(、|、)」の使用法について質問です。
「tanaka.co.jp」「tanaka.ne.jp」の両方を規制したい場合
「\.tanaka.(co|ne).jp」であっていますでしょうか?

863 :名無しさん@お腹いっぱい。:2013/09/01(日) 07:59:41.15 .net
それだと .tanakainenjp とかでもマッチしてしまいます

864 :名無しさん@お腹いっぱい。:2013/09/01(日) 08:46:24.81 .net
うしろ2つのピリオドもエスケープしろってこと。

865 :名無しさん@お腹いっぱい。:2013/09/01(日) 09:12:06.75 .net
ありがとうございます!
「\.tanaka\.(co|ne)\.jp」ですね

866 :名無しさん@お腹いっぱい。:2013/09/22(日) 06:34:10.28 .net
そろそろ保守し続けないといけない?

867 :名無しさん@お腹いっぱい。:2013/12/20(金) 05:42:21.79 .net
>>861
見えちゃう、見えちゃう。って、あれ、自分で書いたんだったorz

868 :名無しさん@お腹いっぱい。:2014/02/10(月) 17:15:58.93 .net
そっか、保守必要なのか

869 :名無しさん@お腹いっぱい。:2014/03/27(木) 02:42:30.48 .net
てす

870 :名無しさん@お腹いっぱい。:2014/03/27(木) 07:28:06.64 .net
>>869
[test] 書きこみテスト 専用スレッド 12 [テスト]
http://toro.2ch.net/test/read.cgi/unix/1382232233/

871 :名無しさん@お腹いっぱい。:2014/03/27(木) 07:58:50.65 .net
>>870
「てす」は保守目的ジャマイカ?

872 :名無しさん@お腹いっぱい。:2014/03/27(木) 09:03:14.23 .net
保守目的なら「ほす」だろう。

873 :名無しさん@お腹いっぱい。:2014/03/27(木) 10:42:31.43 .net
そうか、そうだな。許してほす

874 :名無しさん@お腹いっぱい。:2014/05/31(土) 04:04:08.83 .net
「正規表現」って変な名前だけど、定着してきたみたいだね?

875 :名無しさん@お腹いっぱい。:2014/05/31(土) 05:56:12.12 .net
定着も何もコンピュータ上で実現される以前からこの名前じゃねーの?

876 :名無しさん@お腹いっぱい。:2014/05/31(土) 06:16:13.32 .net
正規表現は誤訳が定着したもの。
「無理数」の誤訳と一緒。

877 :名無しさん@お腹いっぱい。:2014/05/31(土) 06:44:21.84 .net
じゃあ、正しい訳語をどうぞ

878 :名無しさん@お腹いっぱい。:2014/05/31(土) 06:57:48.92 .net
さらに有理数なんて、無理数の無を有に変えた造語だしな。

879 : 【小吉】 :2014/06/01(日) 03:33:37.47 .net
このスレの住人はどうやら5人のようだ

880 :名無しさん@お腹いっぱい。:2014/06/01(日) 06:19:33.54 .net
複素数も誤訳

881 :名無しさん@お腹いっぱい。:2014/06/01(日) 09:45:27.06 .net
正しい訳語を提示せずに誤訳誤訳叫ぶとか馬鹿にしか見えませんよ?

882 :名無しさん@お腹いっぱい。:2014/06/01(日) 12:03:50.34 .net
>>879
俺も居るよ

883 :名無しさん@お腹いっぱい。:2014/06/01(日) 12:06:10.74 .net
教えて欲しいなら教えてくださいといって聞かないと馬鹿にしか見えませんよ?

884 :名無しさん@お腹いっぱい。:2014/06/01(日) 12:16:06.10 .net
regular expression の正しい訳語を教えてください。

885 :名無しさん@お腹いっぱい。:2014/06/01(日) 12:22:55.67 .net
今ごろ聞いても馬鹿にしか見えませんよ?

886 :名無しさん@お腹いっぱい。:2014/06/01(日) 12:36:00.41 .net
今頃って最初から聞き返されてるじゃん何いってんのコイツ

887 :名無しさん@お腹いっぱい。:2014/06/01(日) 12:59:00.89 .net
「教えてくださいといって聞かないと」と言われてからそう聞き直しても馬鹿にしか見えませんよ?

888 :名無しさん@お腹いっぱい。:2014/06/01(日) 13:44:27.82 .net
>>887
こういう気持ち悪いのはだいたいFreeBSDユーザー

889 :名無しさん@お腹いっぱい。:2014/06/01(日) 13:48:57.65 .net
>>888
こういう気持ち悪い偏見を持ってるのはだいたいLinuxユーザー

890 :名無しさん@お腹いっぱい。:2014/06/01(日) 14:14:59.03 .net
で、適切な訳語ってなんなの?
それとも、馬鹿に見えた相手には教えちゃ駄目な宗教にでも入信してるのかな。

891 :名無しさん@お腹いっぱい。:2014/06/01(日) 14:28:45.17 .net
こういう誤訳に反応するのはだいたいNetBSDユーザー

892 :名無しさん@お腹いっぱい。:2014/06/01(日) 16:15:23.61 .net
けっきょく正しい訳語言えないのね。

893 :名無しさん@お腹いっぱい。:2014/06/01(日) 16:28:21.90 .net
訳語は訳者の著作物だからなぁ。こんなところに書いて権利放棄したくないし。

894 :名無しさん@お腹いっぱい。:2014/06/01(日) 16:48:08.97 .net
どんだけ高尚な訳語が出てくるのが楽しみだから、論文でも書いてどっかで発表してからまた来てくれ

895 :名無しさん@お腹いっぱい。:2014/06/01(日) 18:01:17.16 .net
翻訳に関して世界一頑張ったのは日本人なんだって、どこかで読んだな。

896 :名無しさん@お腹いっぱい。:2014/06/01(日) 18:54:28.33 .net
表意文字使ってるから頑張れば単語レベルで訳して意味を振れるんだよな。
カタカナ英語の乱用が白い目に見られるから訳せる分は訳そうとしたり。

中国とかはどうなんだろ?

897 :名無しさん@お腹いっぱい。:2014/06/04(水) 00:29:16.48 .net
レギュラーエスプレッソ

898 :名無しさん@お腹いっぱい。:2014/06/08(日) 10:36:43.20 .net
regular 正則
normal 正規

899 :名無しさん@お腹いっぱい。:2014/09/01(月) 20:44:42.15 .net
>>896
正規表現は正則表達式。
正規分布は正態分布。
正規化は規範化。

非正規社員は臨時工。

900 :名無しさん@お腹いっぱい。:2014/09/25(木) 21:32:43.40 .net
関西弁に反応する?正規表現
# 暇な人、できたら修正してやって下さい
# chaika 等で利用する目的の為、JavaScript の正規表現です
# spawned at 2ch.net/unix/正規表現
# http://peace.2ch.net/test/read.cgi/unix/1039165754/900
# news4vip/1395152022/ を参考にしました

# Rev.001
(?:
 [^い]や|
 や(?:[でわろ]|ねん|んか|んけ|けど|ない|んけ)|
 るで|とるわ|[わが]な
)w*[、。?!\s]|
アホ|あほ|ホンマ|ほんま|アカン|あかん|ええで|なんでなん|
ええ(?:やろ|やん|な|わ)|
ちゃう(?:か|やん)|
でき(:?ん|ひん)|
(?:しとる|ない|よる)ねん|
(?:変わ|分か?)らん|
言うたかて

901 :名無しさん@お腹いっぱい。:2014/10/16(木) 20:19:07.96 .net
世紀表現とワイルドガードの違いを一言でゆうと何になりますか?

902 :名無しさん@お腹いっぱい。:2014/10/16(木) 22:11:18.07 .net
>>901
聖飢魔II

903 :名無しさん@お腹いっぱい。:2014/10/17(金) 05:10:53.04 .net
双生児

904 :名無しさん@お腹いっぱい。:2014/12/07(日) 09:12:49.01 .net
ネタない?

905 :名無しさん@お腹いっぱい。:2015/01/16(金) 17:48:43.41 .net
|tac|sed -n '/./,/.\n/p'|tac|sed -n '/./,/.\n/p'
これは標準入力の中の上下の無駄な改行を全て削除します
perlの正規表現でやるならどう書けばよろしいでしょうか?

906 :名無しさん@お腹いっぱい。:2015/01/16(金) 18:15:48.11 .net
ム板で聞いた方がいいんじゃね

907 :名無しさん@お腹いっぱい。:2015/01/16(金) 23:09:51.63 .net
>>905
(・∀・)アッテルカナ?
(・∀・)もっと別の書き方も見てみたい

perl -0777 -pe 's/\A\n+//s; s/\n+\Z/\n/s'

908 :名無しさん@お腹いっぱい。: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;
  }
'

(;・∀・) 間違ッテタラ、オシエテクレ

909 :名無しさん@お腹いっぱい。: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抜キデ、ブログニ貼ラナイデネ

910 :名無しさん@お腹いっぱい。:2015/01/17(土) 15:54:44.86 .net
perlって面倒くさいんだね。Nコマンドで最終行が無くなったりしないの?
sedだったら、行頭と行末の間に何もない行は削除、という感じで
/^$/d
これだけなんだけど。

911 :名無しさん@お腹いっぱい。: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'

912 :名無しさん@お腹いっぱい。:2015/01/18(日) 02:13:00.56 .net
あ、ごめん、「無駄な改行」を「空白行」だと思い込んじゃったわ。
「無駄な改行」をスクリプトが判断してくれるの?
あ、いやいや、わかんないことに首つっこむのは止めるわ。ごめんね。

913 :名無しさん@お腹いっぱい。:2015/01/18(日) 07:11:53.40 .net
(・∀・) >>912 イエイエ。アリガチナ事
(・∀・) 所デ、書イテハイナカッタケド、一気ニ読ミ込ムナラ、perl 同様ナ書キ方モ出来ル

sed -e '
  :loop;
    $! {
      N;
      b loop;
    };
  s/^\n*//;
  s/\n*$//;
'

914 :名無しさん@お腹いっぱい。:2015/01/18(日) 21:21:15.59 .net
Thanks to (・∀・)
ありがとうが何日間か送れなくて申し訳なかったです

915 :名無しさん@お腹いっぱい。: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+で指定すれば簡単か

916 :名無しさん@お腹いっぱい。:2015/01/30(金) 07:35:17.36 .net
>>915
\Zじゃなくて\zかな。\Aはあってる。

917 :名無しさん@お腹いっぱい。:2015/01/30(金) 10:29:28.40 .net
無条件で、テキストの終わりの連続した改行を取り除けば良いという訳では無く

text\n
text\n
\n
\n
\n

とあれば、最後の3つの \n を取り除いて出力するのが、望ましい動作

一方で行末に\nが無いものに改行を付けてしまうのも、望ましくない
...と思う

text\n
text

918 :名無しさん@お腹いっぱい。:2015/01/30(金) 12:13:26.39 .net
>>917
s/\n+$/\n/

919 :名無しさん@お腹いっぱい。:2017/04/21(金) 08:12:15.25 .net
strを含むがstringを含まない
^(?!string).*(?=str).+$

これ、先頭の^と最後の.+$が必要な理由をだれか教えてくだんそん。

920 :名無しさん@お腹いっぱい。:2017/04/23(日) 21:05:41.03 .net
そもそもその正規表現の意味が違う気はするけど
それは置いといて、^は行頭、$は行末

921 :名無しさん@お腹いっぱい。:2017/07/20(木) 07:30:01.68 .net
Jane Styleで。。。はOKで。。をNGにしたいんですが、教えてください。

922 :名無しさん@お腹いっぱい。:2017/07/20(木) 09:34:21.63 .net
(?<!。)。。(?!。)
知らないけど

923 :921:2017/07/20(木) 13:11:41.43 .net
ありがとう。所詮俺には無理なことも分かりました。

924 :名無しさん@お腹いっぱい。:2017/08/01(火) 17:01:00.66 .net
^/FIRST/(.*)/SAMPLE$

この正規表現がどんな意味しているか知りたいです。
これってどんなURLがマッチしますか?

925 :名無しさん@お腹いっぱい。:2017/08/01(火) 17:34:05.56 .net
/FIRST//SAMPLE
/FIRST/あ,い.う;え:お/SAMPLE
/FIRST/くぁwせdrftgyふじこlp/SAMPLE

() がメタ文字なら

926 :名無しさん@お腹いっぱい。:2017/08/01(火) 17:50:44.54 .net
nginxのコンフィグの話ならnginxスレで続けた方がいいよ

927 :924:2017/08/01(火) 21:05:47.63 .net
>>925
ありがとうございます。

FIRSTとSAMPLEの間(一つのディレクトリ)は改行コード以外ならば全部マッチするんですね。

()で囲むと後方参照…、
/で囲まれてSAMPLEで終わって参照される?
これがわからなかったんです。

928 :名無しさん@お腹いっぱい。:2017/09/06(水) 06:09:37.08 .net
ABCとDEF という単語を両方含むレスをNGにする事はできますか?

ABCだけが含まれるレスとDEFだけが含まれるレスはNGにせず、両方含まれる場合だけNGにしたいです

929 :名無しさん@お腹いっぱい。:2017/09/06(水) 09:49:56.44 .net
ABC.*DEF
DEF.*ABC
とかそういう話?

930 :名無しさん@お腹いっぱい。:2017/09/06(水) 19:10:16.65 .net
マルチ注意

931 :名無しさん@お腹いっぱい。:2017/09/06(水) 21:11:53.55 .net
そういうときはどことのマルチか書かないと
http://fate.2ch.net/test/read.cgi/ios/1494717956/150

932 :名無しさん@お腹いっぱい。:2017/09/06(水) 23:54:46.66 .net
純粋になぜ複数のスレに同じ内容のレスをしたらダメなのかわからないのですがマナー違反なのですか?

荒らし行為がダメなのはわかりますけどただの質問ですし誰も傷つきませんよね?
またマルチですが・・と前置きすれば許されるものなのでしょうか

933 :名無しさん@お腹いっぱい。:2017/09/07(木) 03:43:15.10 .net
お前は時間が節約できる、よりいいレス集まるとでも思ってるかも知らんが、相手のことを何も考えないクズ

934 :名無しさん@お腹いっぱい。:2017/09/07(木) 04:23:07.36 .net
自分も見かけた事あるから気持ちはわかるよ
べつになんとも思わなかった

荒らしはむかつくけど
知りたい事があるなら合理的な行動だと思うしべつに同じ内容を連投する訳でもないからなんとも思わない 

935 :名無しさん@お腹いっぱい。:2017/09/07(木) 04:23:31.36 .net
>>933
腹が立ったの?
いらついたの?

936 :名無しさん@お腹いっぱい。:2017/09/07(木) 04:24:16.00 .net
>>933
同じ人がレスしたんだなぁって思うだけ
自分がもし答えられたらどれかのスレで答えるただそれだけ

937 :名無しさん@お腹いっぱい。:2017/09/07(木) 04:26:07.09 .net
明らかに迷惑なものとそうでないものとわかるだろw

938 :名無しさん@お腹いっぱい。:2017/09/07(木) 07:53:41.36 .net
>>932
板やスレを分けている理由に反する。全部集約して一つのスレで良いだろう、それを許容するなら。

それに君は自分のことだけ考えてそう思ったのかもしれんが同じ事を考えた一万人が同じ事をしたら
答えのつかない同じ質問やバリエーションの異なる答えのついた質問があっちこっちに大量投下されることになる。
それって質問を装った荒しだよね。

939 :名無しさん@お腹いっぱい。:2017/09/07(木) 08:00:25.53 .net
>>938
まぁ君の意見はわかったよ
でも俺は効率を重視するんでなんと思われてもマルチやりますよ

まぁ滅多にやる機会はないけどね
今までま3回くらいしかやった事ない
なぜならそこまでして知りたい事(調べても答えが見つからない事)がなかなかないからね
ちなみに前回もマルチ云々言われたのを覚えてるよ

ググってすぐにわかる程度の事なら
マルチしないよ

940 :名無しさん@お腹いっぱい。:2017/09/07(木) 08:00:57.11 .net
>>938
そんなにイヤな気持ちになるのが俺は理解できないけどねぇ

941 :名無しさん@お腹いっぱい。:2017/09/07(木) 08:01:44.47 .net
正規表現関連のスレ三つに同じ質問しただけなのに敏感すぎだろ

942 :名無しさん@お腹いっぱい。:2017/09/07(木) 08:22:15.56 .net
>>939
好きにすれば良いと思うよ。
俺は君が質問したから答えただけでそれ以上の話ではない。

その質問ここでする意味あったのかって気はするけど
早く答えがほしかったんだよね。ググったくらいで見つからないから質問したんだよね。
良かったじゃないか。何も問題は無いね。

943 :名無しさん@お腹いっぱい。:2017/09/07(木) 10:54:38.94 .net
マルチする奴はクズ
はっきりわかんだね

944 :名無しさん@お腹いっぱい。:2017/09/07(木) 13:19:59.20 .net
許容派が意外に多いのかと思いきや、3連4連レスしてるだけかよ

945 :名無しさん@お腹いっぱい。:2017/09/07(木) 15:09:36.32 .net
気に入らないなら無視すればいいのよ。

946 :名無しさん@お腹いっぱい。:2017/09/07(木) 16:12:52.13 .net
まだ言ってるのかよw
どうでもいいw

947 :名無しさん@お腹いっぱい。:2017/09/07(木) 17:20:51.57 .net
どうでもいいならスルーしとけよw
バレバレ

948 :名無しさん@お腹いっぱい。:2017/09/07(木) 17:42:26.53 .net
>>946
マルチ云々はどうでもいいけど
まだ言ってることはどうでも良くない
だからレスした

949 :名無しさん@お腹いっぱい。:2017/09/07(木) 18:42:02.37 .net
掲示板でマルチポストはなぜいけないの?
ttp://www.ml-info.com/weekly/archives/2009/091024o.html

950 :名無しさん@お腹いっぱい。:2017/09/07(木) 18:44:09.02 .net
まぁ今は2ちゃんの人口少なくてレスもこないからね 

951 :名無しさん@お腹いっぱい。:2017/12/29(金) 07:21:04.18 .net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

SALKY13WAM

952 :名無しさん@お腹いっぱい。:2018/02/22(木) 17:17:52.73 .net
くこけ?

953 :名無しさん@お腹いっぱい。:2018/05/22(火) 02:58:33.70 .net
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

SW8Q2

954 :名無しさん@お腹いっぱい。:2018/05/25(金) 21:24:33.00 .net
vimで最短マッチングを使って、csvの最後の要素をカットするにはどう書けばいいですか?
20分くらい試行錯誤してもわからず結局
%s/,[^,]*$//
としたんですけどカッコ悪いです

955 :名無しさん@お腹いっぱい。:2018/05/25(金) 23:13:21.91 .net
>>725
何か正規表現の入門書で良いものはありませんか?

956 :名無しさん@お腹いっぱい。:2018/05/31(木) 14:08:36.59 .net
UNIXの正規表現の入門のような書籍がなかなかみつかりません
perlの本に正規表現の説明が出てくるのですが、これはシェルで使う正規表現と同じなんでしょうか?

957 :名無しさん@お腹いっぱい。:2018/06/01(金) 00:39:38.00 .net
>>956
「シェルで使う正規表現」というと?

958 :名無しさん@お腹いっぱい。:2018/06/01(金) 10:27:04.50 .net
>>956
どのUNIXコマンドでも使える正規表現
https://qiita.com/richmikan@github/items/b6fb641e5b2b9af3522e

959 :名無しさん@お腹いっぱい。:2018/06/04(月) 08:22:10.94 .net
>>958
ありがとうござい
参考になります

960 :名無しさん@お腹いっぱい。: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"
}

961 :名無しさん@お腹いっぱい。:2018/12/21(金) 21:15:42.56 .net
シェルスクリプトのスレで聞いた方が良案が出やすいんじゃないの
と思うけど

962 :名無しさん@お腹いっぱい。:2018/12/23(日) 01:31:47.78 .net
str="${str//$chr$chr$chr$chr$chr/$chr}"

1回目で大量に消せば高速

963 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:09.90 .net
おまんこ

964 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:12.37 .net
おまんこ

965 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:26.00 .net
おまんこ

966 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:27.30 .net
おまんこ

967 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:31.14 .net
おまんこ

968 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:47.48 .net
おまんこ

969 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:47.69 .net
おまんこ

970 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:22:52.52 .net
おまんこ

971 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:08.59 .net
おまんこ

972 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:14.62 .net
おまんこ

973 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:23.31 .net
おまんこ

974 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:26.96 .net
おまんこ

975 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:38.23 .net
おまんこ

976 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:42.44 .net
おまんこ

977 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:53.50 .net
おまんこ

978 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:23:58.23 .net
おまんこ

979 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:09.32 .net
ぉんこ

980 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:13.82 .net
おまんこ

981 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:24.69 .net
おまんこ

982 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:30.02 .net
おまんこ

983 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:45.01 .net
おまんこ

984 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:50.48 .net
おまんこ

985 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:24:59.95 .net
おまんこ

986 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:05.89 .net
おまんこ

987 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:15.64 .net
おまんこ

988 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:20.89 .net
おまんこ

989 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:30.79 .net
おまんこ

990 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:35.59 .net
おまんこ

991 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:46.53 .net
おまんこ

992 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:25:51.25 .net
おまんこ

993 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:02.32 .net
おまんこ

994 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:07.32 .net
おまんこ

995 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:17.40 .net
おまんこ

996 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:23.80 .net
おまんこ

997 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:33.86 .net
おまんこ

998 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:38.84 .net
おまんこ

999 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:53.77 .net
おまんこ

1000 :名無しさん@お腹いっぱい。:2019/03/15(金) 05:26:54.10 .net
おまんこ

1001 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1001
213 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★