[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/10 20:54 / Filesize : 212 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

正規表現



1 名前:正規表現 mailto:正規表現 [02/12/06 18:09.net]
正規表現

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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


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

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


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

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

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

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



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

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

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


608 名前:<sage> [2006/11/10(金) 19:30:45 .net]
教えて下さい。

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

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

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

よろ

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


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

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

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/22(水) 20:49:29 .net]
氏ね

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/26(日) 13:47:54 .net]
>>602

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

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

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

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

[a-z][^c]

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/04(月) 19:22:18 .net]
a|b|c|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z



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

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


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

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


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

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

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


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

623 名前:615 mailto:sage [2006/12/06(水) 12:51:07 .net]
>>614
わざわざjavaで試した行動力に感服

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

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

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



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

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/07(木) 02:56:32 .net]
>>619

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


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

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


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

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


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


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

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

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

0000C
がヒットする



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

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

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


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

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


$ echo 'BC-K-o58tB' | egrep '[-0-9a-zA-Z]{10,10}'
BC-K-o58tB

641 名前:630 [2006/12/28(木) 12:11:07 .net]
アプリ?良くわかりませんが言語PHPです。

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 12:11:52 .net]
ならPHPのスレで聞いた方がいいんじゃね

643 名前:630 [2006/12/28(木) 12:16:40 .net]
PHPのスレで聞いたら正規表現に行けと言われました。orz

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 14:04:02 .net]
無限ループキタ━━━━━━(゚∀゚)━━━━━━ !!!!


645 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/28(木) 21:33:37 .net]
PHPだとPOSIX由来の正規表現とPerl互換の正規表現があるけどどっち?
後者を使っているならpreg_match('/[-0-9a-zA-Z]{10,10}/', $str)みたいに
正規表現の前後にスラッシュが必要。



646 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/29(金) 11:07:30 .net]
正規表現 part 3
pc8.2ch.net/test/read.cgi/tech/1156413899/


647 名前:名無しさん@お腹いっぱい。 [2007/01/09(火) 23:17:53 .net]
始めたばっかりで、3時間かかってもダメです… お助けを。

()で囲まれる任意の文字部分だけをとりたいんですが、
\(..*\) では全然ダメですね… ()もついてくるし。

*****(ABC-_)(123%&)*****(あいう)***

上の例だと、以下の3つを取りたいです。
ABC-_
123%&
あいう

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/09(火) 23:43:33 .net]
>>641
sed -e "s/(.*)/()/g" でどうよ

649 名前:名無しさん@お腹いっぱい。 [2007/01/10(水) 00:12:39 .net]
>>642
Unix版でしたね…
Windows系でのやり方を知りたいです。

650 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 00:19:56 .net]
>>642
基礎からやり直せ。


651 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:41:33 .net]
>>642
なんか冗長だが...

use strict;
use warnings;
while(<>){
  s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g;
  print $_;
}

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:42:28 .net]
>>643
Windowsにもsedは移植されてるじゃん。


653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/10(水) 01:59:51 .net]
>>643
板違い。

654 名前:名無しさん@お腹いっぱい。 [2007/01/18(木) 10:55:44 .net]
>>641
正規表現でググレカス

655 名前:名無しさん@お腹いっぱい。 [2007/02/07(水) 08:21:33 .net]
すみません、以下の正規表現は何にマッチするんでしょうか?
([\011\012\014 -~]+\\|\\(\\cj\\|\n\\)+\\)
処理系はLispです。お願いします。



656 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/08(木) 02:57:00 .net]
>>649
LispつかEmacs Lispだろ。先頭に \\ が抜けてないか?

[\011\012\014 -~]+   タブかLFかCRかスペースかASCIIの表示可能文字の繰り返し

\\| または

\\(\\cj\\|\n\\)+  Cjって多バイト文字でいいんだっけ? か改行の繰り返し



657 名前:649 mailto:sage [2007/02/08(木) 15:45:20 .net]
>>650
すみません、おっしゃる通り先頭に\\が抜けていました。
なるほど、どうもありがとうございました。

658 名前:名無しさん@お腹いっぱい。 [2007/03/27(火) 16:10:01 .net]
コンマはエスケープする必要はありますか?

We are NOVA-TOMO\, right?

659 名前:名無しさん@お腹いっぱい。 [2007/03/27(火) 17:34:57 .net]
必要ないと思った。付けても問題ないと思うけど。
むしろ?の方が…
俺詳しくないから何ともいえないけど

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 01:44:02 .net]
カンマはどの正規表現でもメタ文字じゃないのでエスケープの必要はない。
むしろ >>653のいうとおりで ? が要注意。

grep/sed ならエスケープなしでOK。
egrep/awk/perl その他Perl互換のものなら要エスケープ


661 名前:名無しさん@お腹いっぱい。 [2007/04/21(土) 22:17:17 .net]
当方、秀丸を使っております。
“・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか?
どうしても、「」で囲まれる前の文章もヒットしてしまうのです。

662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/21(土) 22:55:33 .net]
>>655
秀丸とやらはUnixで動くのかい?

663 名前:名無しさん@お腹いっぱい。 [2007/04/21(土) 23:03:01 .net]
げ、UNIX版でしたか!
失礼しました。

664 名前:名無しさん@お腹いっぱい。 [2007/05/04(金) 12:21:16 .net]
ニフティーのドメイン以外を拾う為に [^nifty]\.com と書くのは間違いのようですが

特定の“文字列”以外を指定するのはどーすりゃいいの?

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 12:44:28 .net]
否定先読みなどの拡張があればそれを使えばいいが、なくても
それ以外の文字列をすべて列挙すればなんとかなります。




666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 13:59:38 .net]
grep -v '特定の文字列' filename


667 名前:名無しさん@お腹いっぱい。 [2007/05/04(金) 14:35:47 .net]
正規表現の話では?

([^n]....|.[^i]...|..[^f]..|...[^t].|....[^y])\.com

これが正解

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:54:42 .net]
nifty.com以外のナントカ.comにマッチさせたいのだから、

([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*)\.com

ではないか?

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:56 ]
[ここ壊れてます]

670 名前::11 .net mailto: 無理に正規表現でがんばるより
他の方法を探した方がいい。
[]
[ここ壊れてます]

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:58:05 .net]
それではniftyhoge.comにマッチしないので

([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*|nifty..*)\.com


672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 15:58:18 .net]
perlならもうちょっと簡単?
perl -ne 'print if /(?<!nifty)\.com/'

grep -v とか否定を使うほうが素直だと思うけど。

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 16:31:54 .net]
ヒネクレたひとたちばかりいるスレですから

674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 16:44:04 .net]
このスレの中くらいは正規表現原理主義でいいじゃないか

675 名前:名無しさん@お腹いっぱい。 [2007/05/05(土) 00:26:33 .net]
その為のスレなんだから当然といえば当然だろ




676 名前:名無しさん@お腹いっぱい。 mailto:111111111111111111111111111111111111 [2007/05/21(月) 19:09:39 .net]
はふ

677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 22:36:56 .net]
-rwxrwxr-x 1 53 53 3504 May 22 2006 index.htm
drwxrwxr-x 4 53 53 4096 May 6 2006 common
drwxrwxr-x 2 53 53 4096 May 22 2006 tmp
drwxrwxr-x 2 53 53 4096 May 22 2006 image

↑から<属性>(-rwxrwxr-x)と<名称>(index.htm)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?


678 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:48:40 .net]
ここは実は分かってない奴しかいねーから無理じゃね?ww

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:05:12 .net]
>>670
グループ化って言うのがよくわからんけど、パーミッションの部分とファイル名の部分だけ取り出したいなら

$ perl -e 'while(<>){ if(/^([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*(.*)$/){ print "$1 $9\n"; }}' < test.txt
-rwxrwxr-x index.htm
drwxrwxr-x common
drwxrwxr-x tmp
drwxrwxr-x image
$

ぐらいからはじめればいい。

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:44:17 .net]
確かにみんなもっとスマートに書けないものかねえ・・・

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:31:04 .net]
^([^\s]+)(.*)([^\s]+)$

$1 $3


682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 03:06:51 .net]
(; ^ω^)

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 07:07:47 .net]
むしろ正規表現使わないでreaddirとstat使うとこじゃないか?


684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 15:00:33 .net]
$ ls -al | sed -e 's/ \{1,\}/ /g' | cut -d ' ' -f 1,9

cut 使うのは反則?

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/30(水) 16:06:37 .net]
awk '{print $1,$9}'
で十分では無かろうかと



686 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/01(土) 07:33:23 .net]
gawkでJavaソースファイル内の「識別子」単位の置き換えをしようとしていますが,
なかなかうまくいきません.
たとえば,独立して現れる「Stack」は「Queue」に置き換えるが,
「argStack」は別の識別子だから「argQueue」とは置き換えず
そのままにしておくというものです.
Javaの識別子は[_0-9A-Za-z]の文字だけから構成されるとしています.
awk以外の選択肢も含めて,よい方法がありますでしょうか?
最終的には,Javaで置換プログラムを書けばできなくもないとは思いますが,
安直な方法があればお教えください.

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/01(土) 08:57:42 .net]
\< \> で囲っておくとか。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef