正規表現
■ このスレッドは過去ログ倉庫に格納されています
1正規表現
NGNG 正規表現
2006/10/17(火) 19:55:43
論理的に考えてみればわかるよ
2006/10/18(水) 09:59:12
>>587
欲張りマッチだから、xxxが見つかった段階で一文字戻ってマッチにしちゃう?
欲張りマッチだから、xxxが見つかった段階で一文字戻ってマッチにしちゃう?
589名無しさん@お腹いっぱい。
2006/10/18(水) 11:10:22 >>586
解釈するわけがない
解釈するわけがない
590名無しさん@お腹いっぱい。
2006/10/20(金) 10:45:162006/10/24(火) 10:00:30
正規表現でできることの仕様ってずっとこのままなんですかね。
括弧の対を考慮した表現とかって簡単にならないかな。
括弧の対を考慮した表現とかって簡単にならないかな。
2006/10/24(火) 11:17:38
処理系ごとに拡張してあったりするじゃん。
2006/10/24(火) 11:28:08
hp-uxのgrep糞だなw
\< \>が使えん。
\< \>が使えん。
2006/10/24(火) 12:07:18
grepツールで、htmlのコメント内を検索対象からはずしてgrepできるツールありますか?
コメントで死ぬほど引っかかって苦労してます。
複数行コメント中の真ん中ぐらいの行に引っかかっても、先頭に<!--がないから
普通のgrepツールだときびしいです。
コメントで死ぬほど引っかかって苦労してます。
複数行コメント中の真ん中ぐらいの行に引っかかっても、先頭に<!--がないから
普通のgrepツールだときびしいです。
2006/10/24(火) 12:13:02
sedしかないだろ。
2006/10/24(火) 12:24:01
-- の対応まで見ようとするとつらそうだ。
2006/10/24(火) 21:37:54
複数行になると途端にわけわからんくなるな・・・。
2006/10/26(木) 05:24:59
改行位置を変換する前処理をしてからやるとか
2006/10/26(木) 11:38:24
コメントを
s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g
で取り除いてからgrepすればいいんじゃね?
s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g
で取り除いてからgrepすればいいんじゃね?
2006/11/03(金) 14:20:22
マルチで済まない。
同じ文字が3文字連続していたら表示したいのだが
同じ文字が3文字連続していたら表示したいのだが
2006/11/03(金) 15:02:08
>>599
>s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g
この部分はsed?
だったら、その後もgrepなんかせずに、sedだけで完結すればいいじゃん。
awkでも同じく。
>s/<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)//g
この部分はsed?
だったら、その後もgrepなんかせずに、sedだけで完結すればいいじゃん。
awkでも同じく。
602<sage>
2006/11/10(金) 19:30:45 教えて下さい。
ダブルクオートで囲まれていない、コンマだけを置き換えたいのですが、
正規表現では、どうあらわせばいいのでしょうか?
例:
"aaa, bbb" xxxx, "ccc, ddd" yyyyyy
xxxx, <- このコンマを −> xxxx; とセミコロンにしたいです。
よろ
ダブルクオートで囲まれていない、コンマだけを置き換えたいのですが、
正規表現では、どうあらわせばいいのでしょうか?
例:
"aaa, bbb" xxxx, "ccc, ddd" yyyyyy
xxxx, <- このコンマを −> xxxx; とセミコロンにしたいです。
よろ
603名無しさん@お腹いっぱい。
2006/11/13(月) 23:01:55604<sage>
2006/11/14(火) 15:35:11 >> 603
そのページのどこを読めと?
そのページのどこを読めと?
2006/11/22(水) 14:36:47
2006/11/22(水) 20:49:29
氏ね
2006/11/26(日) 13:47:54
>>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
これだけ読めば解決できるが
池沼には無理
◆関連サイト
正規表現メモ
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
これだけ読めば解決できるが
池沼には無理
2006/12/04(月) 14:18:49
アルファベットの文字で構成されるが、「d」は入らない、を
[a-ce-z]以外の書き方で表現する方法はないですか?
もちろん↓はエラーだけど、こんな漢字で書ければいいのだけれど。
[a-z][^c]
[a-ce-z]以外の書き方で表現する方法はないですか?
もちろん↓はエラーだけど、こんな漢字で書ければいいのだけれど。
[a-z][^c]
2006/12/04(月) 19:22:18
a|b|c|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
2006/12/04(月) 22:02:59
>>608
javaならできる
javaならできる
2006/12/04(月) 22:08:51
d|i|g|i|t|a|l
2006/12/05(火) 09:35:00
>>610
どうやるんだべさ?
どうやるんだべさ?
2006/12/06(水) 02:45:07
2006/12/06(水) 09:44:34
>>613
うぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ〜、すげぇ〜。できました!
javaだとこんなのができるのか!
もちろん正規表現標準じゃないので、perlとか秀丸正規表現ではできないかぁ・・・
javaならではの裏技って他に何かあるんですかね?
うぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ〜、すげぇ〜。できました!
javaだとこんなのができるのか!
もちろん正規表現標準じゃないので、perlとか秀丸正規表現ではできないかぁ・・・
javaならではの裏技って他に何かあるんですかね?
2006/12/06(水) 12:20:30
2006/12/06(水) 12:23:51
タイプ数増えてるのは問題ないのかw
2006/12/06(水) 13:11:31
java使う人ならタイプ数が増えることが問なさそう
2006/12/06(水) 14:12:54
>>615
うぉ+でいいんじゃないの?なんか違うの?
うぉ+でいいんじゃないの?なんか違うの?
2006/12/06(水) 17:58:50
(+_+;)
2006/12/07(木) 02:56:32
2006/12/16(土) 17:28:28
1〜1000
までの数字から始まって最後が
C]
で終わる正規表現を教えて下さい
m(_ _)m
までの数字から始まって最後が
C]
で終わる正規表現を教えて下さい
m(_ _)m
2006/12/16(土) 17:45:19
^[0-9]\{1,4\}[^0-9]*C]$
かな?
かな?
2006/12/16(土) 17:55:45
2006/12/16(土) 19:58:43
^([1-9][0-9]\{0,2\}|1000)[^0-9]*C]$
こうか?
こうか?
626名無しさん@お腹いっぱい。
2006/12/17(日) 00:31:38 タイトル:文字列 の文字列の部分だけを取り出したいのですが、
どのような正規表現にすれば良いのでしょうか?
よろしければ、ご教授を願います。
どのような正規表現にすれば良いのでしょうか?
よろしければ、ご教授を願います。
2006/12/17(日) 00:34:12
いろいろ出ているようだけど
[0-9].*C]
ではダメな理由がわからない
[0-9].*C]
ではダメな理由がわからない
2006/12/17(日) 00:52:14
>>626
文..
文..
2006/12/17(日) 07:34:54
630名無しさん@お腹いっぱい。
2006/12/28(木) 11:54:55 初歩な質問ですみませんが
[0-9a-zA-Z]で英数字にマッチするものとなると思うのですが
例えばajgko-jk-s1olのように「-」記号が入っているとマッチしません
どう記述すればよいですか?よろしくお願いします。
[0-9a-zA-Z]で英数字にマッチするものとなると思うのですが
例えばajgko-jk-s1olのように「-」記号が入っているとマッチしません
どう記述すればよいですか?よろしくお願いします。
2006/12/28(木) 11:57:12
>>630
[-0-9a-zA-Z]
[-0-9a-zA-Z]
632630
2006/12/28(木) 12:01:22 >>631
さんありがとうございます。
しかし上記のように記述しても読み込んでくれません・・・。
こう記述して[-0-9a-zA-Z]{10,10}
「BC-K-o58tB」これを認識してくれません。
さんありがとうございます。
しかし上記のように記述しても読み込んでくれません・・・。
こう記述して[-0-9a-zA-Z]{10,10}
「BC-K-o58tB」これを認識してくれません。
2006/12/28(木) 12:09:19
どのアプリ使ってんのよ
2006/12/28(木) 12:10:47
635630
2006/12/28(木) 12:11:07 アプリ?良くわかりませんが言語PHPです。
2006/12/28(木) 12:11:52
ならPHPのスレで聞いた方がいいんじゃね
637630
2006/12/28(木) 12:16:40 PHPのスレで聞いたら正規表現に行けと言われました。orz
2006/12/28(木) 14:04:02
無限ループキタ━━━━━━(゚∀゚)━━━━━━ !!!!
2006/12/28(木) 21:33:37
PHPだとPOSIX由来の正規表現とPerl互換の正規表現があるけどどっち?
後者を使っているならpreg_match('/[-0-9a-zA-Z]{10,10}/', $str)みたいに
正規表現の前後にスラッシュが必要。
後者を使っているならpreg_match('/[-0-9a-zA-Z]{10,10}/', $str)みたいに
正規表現の前後にスラッシュが必要。
2006/12/29(金) 11:07:30
641名無しさん@お腹いっぱい。
2007/01/09(火) 23:17:53 始めたばっかりで、3時間かかってもダメです… お助けを。
()で囲まれる任意の文字部分だけをとりたいんですが、
\(..*\) では全然ダメですね… ()もついてくるし。
*****(ABC-_)(123%&)*****(あいう)***
上の例だと、以下の3つを取りたいです。
ABC-_
123%&
あいう
()で囲まれる任意の文字部分だけをとりたいんですが、
\(..*\) では全然ダメですね… ()もついてくるし。
*****(ABC-_)(123%&)*****(あいう)***
上の例だと、以下の3つを取りたいです。
ABC-_
123%&
あいう
2007/01/09(火) 23:43:33
>>641
sed -e "s/(.*)/()/g" でどうよ
sed -e "s/(.*)/()/g" でどうよ
643名無しさん@お腹いっぱい。
2007/01/10(水) 00:12:392007/01/10(水) 00:19:56
2007/01/10(水) 01:41:33
>>642
なんか冗長だが...
use strict;
use warnings;
while(<>){
s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g;
print $_;
}
なんか冗長だが...
use strict;
use warnings;
while(<>){
s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g;
print $_;
}
2007/01/10(水) 01:42:28
2007/01/10(水) 01:59:51
>>643
板違い。
板違い。
648名無しさん@お腹いっぱい。
2007/01/18(木) 10:55:44 >>641
正規表現でググレカス
正規表現でググレカス
649名無しさん@お腹いっぱい。
2007/02/07(水) 08:21:33 すみません、以下の正規表現は何にマッチするんでしょうか?
([\011\012\014 -~]+\\|\\(\\cj\\|\n\\)+\\)
処理系はLispです。お願いします。
([\011\012\014 -~]+\\|\\(\\cj\\|\n\\)+\\)
処理系はLispです。お願いします。
2007/02/08(木) 02:57:00
>>649
LispつかEmacs Lispだろ。先頭に \\ が抜けてないか?
[\011\012\014 -~]+ タブかLFかCRかスペースかASCIIの表示可能文字の繰り返し
\\| または
\\(\\cj\\|\n\\)+ Cjって多バイト文字でいいんだっけ? か改行の繰り返し
LispつかEmacs Lispだろ。先頭に \\ が抜けてないか?
[\011\012\014 -~]+ タブかLFかCRかスペースかASCIIの表示可能文字の繰り返し
\\| または
\\(\\cj\\|\n\\)+ Cjって多バイト文字でいいんだっけ? か改行の繰り返し
652名無しさん@お腹いっぱい。
2007/03/27(火) 16:10:01 コンマはエスケープする必要はありますか?
We are NOVA-TOMO\, right?
We are NOVA-TOMO\, right?
653名無しさん@お腹いっぱい。
2007/03/27(火) 17:34:57 必要ないと思った。付けても問題ないと思うけど。
むしろ?の方が…
俺詳しくないから何ともいえないけど
むしろ?の方が…
俺詳しくないから何ともいえないけど
2007/03/28(水) 01:44:02
カンマはどの正規表現でもメタ文字じゃないのでエスケープの必要はない。
むしろ >>653のいうとおりで ? が要注意。
grep/sed ならエスケープなしでOK。
egrep/awk/perl その他Perl互換のものなら要エスケープ
むしろ >>653のいうとおりで ? が要注意。
grep/sed ならエスケープなしでOK。
egrep/awk/perl その他Perl互換のものなら要エスケープ
655名無しさん@お腹いっぱい。
2007/04/21(土) 22:17:17 当方、秀丸を使っております。
“・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか?
どうしても、「」で囲まれる前の文章もヒットしてしまうのです。
“・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか?
どうしても、「」で囲まれる前の文章もヒットしてしまうのです。
2007/04/21(土) 22:55:33
>>655
秀丸とやらはUnixで動くのかい?
秀丸とやらはUnixで動くのかい?
657名無しさん@お腹いっぱい。
2007/04/21(土) 23:03:01 げ、UNIX版でしたか!
失礼しました。
失礼しました。
658名無しさん@お腹いっぱい。
2007/05/04(金) 12:21:16 ニフティーのドメイン以外を拾う為に [^nifty]\.com と書くのは間違いのようですが
特定の“文字列”以外を指定するのはどーすりゃいいの?
特定の“文字列”以外を指定するのはどーすりゃいいの?
2007/05/04(金) 12:44:28
否定先読みなどの拡張があればそれを使えばいいが、なくても
それ以外の文字列をすべて列挙すればなんとかなります。
それ以外の文字列をすべて列挙すればなんとかなります。
2007/05/04(金) 13:59:38
grep -v '特定の文字列' filename
661名無しさん@お腹いっぱい。
2007/05/04(金) 14:35:47 正規表現の話では?
([^n]....|.[^i]...|..[^f]..|...[^t].|....[^y])\.com
これが正解
([^n]....|.[^i]...|..[^f]..|...[^t].|....[^y])\.com
これが正解
2007/05/04(金) 14:54:42
nifty.com以外のナントカ.comにマッチさせたいのだから、
([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*)\.com
ではないか?
([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*)\.com
ではないか?
2007/05/04(金) 14:56:11
無理に正規表現でがんばるより
他の方法を探した方がいい。
他の方法を探した方がいい。
2007/05/04(金) 14:58:05
それではniftyhoge.comにマッチしないので
([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*|nifty..*)\.com
([^n].*|n[^i].*|ni[^f].*|nif[^t].*|nift[^y].*|nifty..*)\.com
2007/05/04(金) 15:58:18
perlならもうちょっと簡単?
perl -ne 'print if /(?<!nifty)\.com/'
grep -v とか否定を使うほうが素直だと思うけど。
perl -ne 'print if /(?<!nifty)\.com/'
grep -v とか否定を使うほうが素直だと思うけど。
2007/05/04(金) 16:31:54
ヒネクレたひとたちばかりいるスレですから
2007/05/04(金) 16:44:04
このスレの中くらいは正規表現原理主義でいいじゃないか
668名無しさん@お腹いっぱい。
2007/05/05(土) 00:26:33 その為のスレなんだから当然といえば当然だろ
2007/05/21(月) 19:09:39
はふ
2007/05/28(月) 22:36:56
-rwxrwxr-x 1 53 53 3504 May 22 2006 index.htm
drwxrwxr-x 4 53 53 4096 May 6 2006 common
drwxrwxr-x 2 53 53 4096 May 22 2006 tmp
drwxrwxr-x 2 53 53 4096 May 22 2006 image
↑から<属性>(-rwxrwxr-x)と<名称>(index.htm)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?
drwxrwxr-x 4 53 53 4096 May 6 2006 common
drwxrwxr-x 2 53 53 4096 May 22 2006 tmp
drwxrwxr-x 2 53 53 4096 May 22 2006 image
↑から<属性>(-rwxrwxr-x)と<名称>(index.htm)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?
671名無しさん@お腹いっぱい。
2007/05/28(月) 22:48:40 ここは実は分かってない奴しかいねーから無理じゃね?ww
2007/05/29(火) 00:05:12
>>670
グループ化って言うのがよくわからんけど、パーミッションの部分とファイル名の部分だけ取り出したいなら
$ perl -e 'while(<>){ if(/^([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*([^\s]*)\s*(.*)$/){ print "$1 $9\n"; }}' < test.txt
-rwxrwxr-x index.htm
drwxrwxr-x common
drwxrwxr-x tmp
drwxrwxr-x image
$
ぐらいからはじめればいい。
グループ化って言うのがよくわからんけど、パーミッションの部分とファイル名の部分だけ取り出したいなら
$ 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
$
ぐらいからはじめればいい。
2007/05/29(火) 01:44:17
確かにみんなもっとスマートに書けないものかねえ・・・
2007/05/29(火) 02:31:04
^([^\s]+)(.*)([^\s]+)$
$1 $3
$1 $3
2007/05/29(火) 03:06:51
(; ^ω^)
2007/05/29(火) 07:07:47
むしろ正規表現使わないでreaddirとstat使うとこじゃないか?
2007/05/29(火) 15:00:33
$ ls -al | sed -e 's/ \{1,\}/ /g' | cut -d ' ' -f 1,9
cut 使うのは反則?
cut 使うのは反則?
2007/05/30(水) 16:06:37
awk '{print $1,$9}'
で十分では無かろうかと
で十分では無かろうかと
2007/09/01(土) 07:33:23
gawkでJavaソースファイル内の「識別子」単位の置き換えをしようとしていますが,
なかなかうまくいきません.
たとえば,独立して現れる「Stack」は「Queue」に置き換えるが,
「argStack」は別の識別子だから「argQueue」とは置き換えず
そのままにしておくというものです.
Javaの識別子は[_0-9A-Za-z]の文字だけから構成されるとしています.
awk以外の選択肢も含めて,よい方法がありますでしょうか?
最終的には,Javaで置換プログラムを書けばできなくもないとは思いますが,
安直な方法があればお教えください.
なかなかうまくいきません.
たとえば,独立して現れる「Stack」は「Queue」に置き換えるが,
「argStack」は別の識別子だから「argQueue」とは置き換えず
そのままにしておくというものです.
Javaの識別子は[_0-9A-Za-z]の文字だけから構成されるとしています.
awk以外の選択肢も含めて,よい方法がありますでしょうか?
最終的には,Javaで置換プログラムを書けばできなくもないとは思いますが,
安直な方法があればお教えください.
2007/09/01(土) 08:57:42
\< \> で囲っておくとか。
681679
2007/09/01(土) 19:15:56 grepの「-w」は普通にできるのに,いざ置換で同じことをしようとすると
難しいですね.
結局Javaで処理プログラムを書きました.ありがとうございました.
難しいですね.
結局Javaで処理プログラムを書きました.ありがとうございました.
2007/11/21(水) 09:09:36
hogeを含む行のうち^\s*'で始まらないもの
をgrepするのにvimでは
\(^\s*'.*\)\@<!hoge
でできるようなんですが、サクラで
(?<!^\s*'.*)hoge
とするとダメでした。
これをgrepするにはどうすればいいでしょうか?
サクラ(bregexp.dll)の正規表現はPerl5互換だそうなんですが。
をgrepするのにvimでは
\(^\s*'.*\)\@<!hoge
でできるようなんですが、サクラで
(?<!^\s*'.*)hoge
とするとダメでした。
これをgrepするにはどうすればいいでしょうか?
サクラ(bregexp.dll)の正規表現はPerl5互換だそうなんですが。
2007/11/21(水) 09:53:00
板違い。
2007/11/21(水) 11:08:21
じゃあ
hogeを含む行のうち^\s*'で始まらないもの
にマッチするPerl5正規表現を答えよ。
とします。
hogeを含む行のうち^\s*'で始まらないもの
にマッチするPerl5正規表現を答えよ。
とします。
2007/11/21(水) 11:28:24
ム板行け。
686情報工学ばが
2008/01/15(火) 20:48:47 正規表現ってなんですか?
687情報工学ばが
2008/01/15(火) 20:50:24 はやく!!!
単位がないんです!!
単位がないんです!!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- たぬかな、結婚していた SNSで報告 生配信では入籍時期も説明 祝福殺到「おめでとう!」「幸あれ」 [muffin★]
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 東京・足立区の盗難車死亡ひき逃げ事件 11人死傷のうち死亡した男女の身元を発表 80代の男性と20代フィリピン国籍の女性 警視庁 [どどん★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」★3 [muffin★]
- 「営業妨害ですよ」小野田紀美氏、銀色ドレス揶揄に怒りをあらわ [バイト歴50年★]
- ド、ド、ド リ フ の
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- お前らっていい匂いするよな
- なんか寝れないのでウマ娘の雑談とか募集
- 機械に疎いのほんと大変
- お前ら彼女/妻のうんちを素手で触れる?
