正規表現

■ このスレッドは過去ログ倉庫に格納されています
NGNG
正規表現
2006/12/06(水) 09:44:34
>>613
うぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ〜、すげぇ〜。できました!
javaだとこんなのができるのか!
もちろん正規表現標準じゃないので、perlとか秀丸正規表現ではできないかぁ・・・

javaならではの裏技って他に何かあるんですかね?
2006/12/06(水) 12:20:30
>>614
うぉ++
2006/12/06(水) 12:23:51
タイプ数増えてるのは問題ないのかw
617615
垢版 |
2006/12/06(水) 12:51:07
>>614
わざわざjavaで試した行動力に感服

強欲マッチといわれる615もためしてみるといい
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
>>619

違うよ。++が付いたほうはバックトラックしない。
Perlの (?> ...) と同じ。
2006/12/16(土) 17:28:28
1〜1000
までの数字から始まって最後が
C]
で終わる正規表現を教えて下さい
m(_ _)m
2006/12/16(土) 17:45:19
^[0-9]\{1,4\}[^0-9]*C]$
かな?
2006/12/16(土) 17:55:45
>>623
駄目でしたorz
正規表現の勉強してきます。
有難うございましたm(_ _)m
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]
ではダメな理由がわからない
2006/12/17(日) 00:52:14
>>626
文..
2006/12/17(日) 07:34:54
>>627
全然ダメ

0000C
がヒットする
630名無しさん@お腹いっぱい。
垢版 |
2006/12/28(木) 11:54:55
初歩な質問ですみませんが
[0-9a-zA-Z]で英数字にマッチするものとなると思うのですが
例えばajgko-jk-s1olのように「-」記号が入っているとマッチしません
どう記述すればよいですか?よろしくお願いします。
2006/12/28(木) 11:57:12
>>630
[-0-9a-zA-Z]
632630
垢版 |
2006/12/28(木) 12:01:22
>>631
さんありがとうございます。
しかし上記のように記述しても読み込んでくれません・・・。
こう記述して[-0-9a-zA-Z]{10,10}
「BC-K-o58tB」これを認識してくれません。
2006/12/28(木) 12:09:19
どのアプリ使ってんのよ
2006/12/28(木) 12:10:47
>>632
ちゃんとマッチするけど・・


$ echo 'BC-K-o58tB' | egrep '[-0-9a-zA-Z]{10,10}'
BC-K-o58tB
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)みたいに
正規表現の前後にスラッシュが必要。
2006/12/29(金) 11:07:30
正規表現 part 3
http://pc8.2ch.net/test/read.cgi/tech/1156413899/
641名無しさん@お腹いっぱい。
垢版 |
2007/01/09(火) 23:17:53
始めたばっかりで、3時間かかってもダメです… お助けを。

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

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

上の例だと、以下の3つを取りたいです。
ABC-_
123%&
あいう
2007/01/09(火) 23:43:33
>>641
sed -e "s/(.*)/()/g" でどうよ
643名無しさん@お腹いっぱい。
垢版 |
2007/01/10(水) 00:12:39
>>642
Unix版でしたね…
Windows系でのやり方を知りたいです。
2007/01/10(水) 00:19:56
>>642
基礎からやり直せ。
2007/01/10(水) 01:41:33
>>642
なんか冗長だが...

use strict;
use warnings;
while(<>){
  s{(?:[^(]*)\(([^)]*)\)(?:[^(]*)}{[$1]}g;
  print $_;
}
2007/01/10(水) 01:42:28
>>643
Windowsにもsedは移植されてるじゃん。
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です。お願いします。
2007/02/08(木) 02:57:00
>>649
LispつかEmacs Lispだろ。先頭に \\ が抜けてないか?

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

\\| または

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

651649
垢版 |
2007/02/08(木) 15:45:20
>>650
すみません、おっしゃる通り先頭に\\が抜けていました。
なるほど、どうもありがとうございました。
652名無しさん@お腹いっぱい。
垢版 |
2007/03/27(火) 16:10:01
コンマはエスケープする必要はありますか?

We are NOVA-TOMO\, right?
653名無しさん@お腹いっぱい。
垢版 |
2007/03/27(火) 17:34:57
必要ないと思った。付けても問題ないと思うけど。
むしろ?の方が…
俺詳しくないから何ともいえないけど
2007/03/28(水) 01:44:02
カンマはどの正規表現でもメタ文字じゃないのでエスケープの必要はない。
むしろ >>653のいうとおりで ? が要注意。

grep/sed ならエスケープなしでOK。
egrep/awk/perl その他Perl互換のものなら要エスケープ
655名無しさん@お腹いっぱい。
垢版 |
2007/04/21(土) 22:17:17
当方、秀丸を使っております。
“・”で始まる文で、「」で囲まれた文をヒットさせるのにはどうすればよいのでしょうか?
どうしても、「」で囲まれる前の文章もヒットしてしまうのです。
2007/04/21(土) 22:55:33
>>655
秀丸とやらはUnixで動くのかい?
657名無しさん@お腹いっぱい。
垢版 |
2007/04/21(土) 23:03:01
げ、UNIX版でしたか!
失礼しました。
658名無しさん@お腹いっぱい。
垢版 |
2007/05/04(金) 12:21:16
ニフティーのドメイン以外を拾う為に [^nifty]\.com と書くのは間違いのようですが

特定の“文字列”以外を指定するのはどーすりゃいいの?
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

これが正解
2007/05/04(金) 14:54:42
nifty.com以外のナントカ.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
2007/05/04(金) 15:58:18
perlならもうちょっと簡単?
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)の部分をグループ化で取り出したいのですが、どのようにすればよいのでしょうか?
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
$

ぐらいからはじめればいい。
2007/05/29(火) 01:44:17
確かにみんなもっとスマートに書けないものかねえ・・・
2007/05/29(火) 02:31:04
^([^\s]+)(.*)([^\s]+)$

$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 使うのは反則?
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で置換プログラムを書けばできなくもないとは思いますが,
安直な方法があればお教えください.
2007/09/01(土) 08:57:42
\< \> で囲っておくとか。
681679
垢版 |
2007/09/01(土) 19:15:56
grepの「-w」は普通にできるのに,いざ置換で同じことをしようとすると
難しいですね.
結局Javaで処理プログラムを書きました.ありがとうございました.
2007/11/21(水) 09:09:36
hogeを含む行のうち^\s*'で始まらないもの
を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正規表現を答えよ。
とします。
2007/11/21(水) 11:28:24
ム板行け。
686情報工学ばが
垢版 |
2008/01/15(火) 20:48:47
正規表現ってなんですか?
687情報工学ばが
垢版 |
2008/01/15(火) 20:50:24
はやく!!!
単位がないんです!!
688情報工学ばが
垢版 |
2008/01/15(火) 20:51:45
お願いします。。。
689わし
垢版 |
2008/01/15(火) 20:55:01
わしにはわからん。
2008/01/16(水) 01:21:45
>>686
【サルにもわかる正規表現入門】
http://www.mnet.ne.jp/~nakama/
691名無しさん@お腹いっぱい。
垢版 |
2008/01/16(水) 12:24:11
>>690
有難うございました。
おかげで単位取れそうやでー!!
ほな
692名無しさん@お腹いっぱい。
垢版 |
2008/01/17(木) 00:37:01
語り手緊急募集中!!

坐禅と見性第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
2008-03 発売(予定)
「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円
2008/02/24(日) 17:10:30
バイト代が全部本で消えていく・・・
2008/02/24(日) 18:03:30
あるある
696名無しさん@お腹いっぱい。
垢版 |
2008/02/26(火) 14:03:08
2/1 XXXXXXXX
2/2〜2/5 XXXXXXXXX
2/7〜2/8 XXXXXXX
2/12 XXXXXXXXXX
2/20〜2/28 XXXXXXXXX

と書かれた行があり 今日より以前の日付の行を削除するにはどうすればいいですか
2008/02/26(火) 15:50:38
それは正規表現の問題か?
698名無しさん@お腹いっぱい。
垢版 |
2008/02/26(火) 17:23:03
Cの構造体のようにネストする可能性のあるものを正規表現で抽出するにはどうすればいいでしょうか?
2008/02/26(火) 17:26:13
無理
2008/02/26(火) 21:47:00
>>699
正解
2008/02/26(火) 22:31:20
>>696
日付の切り出しを正規表現でやって、日付の判定以降はプログラムでがんばれ。
702名無しさん@お腹いっぱい。
垢版 |
2008/03/06(木) 14:24:40
sedを使って
2007/1/2
2007/1/23
2007/12/2
2007/12/31
のデータを
2007/01/02
2007/01/23
2007/12/02
2007/12/31
にするにはどうすればいいですか

2008/03/06(木) 14:28:44
sed -e 's,/1/,/01/,' -e 's,/2$,/02,'
2008/03/06(木) 17:14:22
>>703
9日近く書き込み無いのによく質問に高速で答えられますね
尊敬するとともに変態だと思います。
2008/03/06(木) 17:15:08
別に何日書き込みがなかろうが関係ない。
2008/03/06(木) 22:36:13
>>704
今時ブラウザでみてる奇特な人かな?

別にこのスレを毎日人手でチェックしてるわけじゃなくて、
専ブラの巡回リストに入ってるだけのことだと思うよ。

まあ、確かに4分でレスするのはちょっとすごいが
よくよく見たら 2007/3/3 とかは変換しない...
ほんとにそれでいいのか? >>702
2008/03/06(木) 23:43:20
>>703もわざとその答えにしたんだろ。
要するに質問の仕方が悪いって事だ。
2008/03/17(月) 21:53:04
>>702
ゼロサプレス 正規表現
とか
ゼロパディング 正規表現
とかでググってみるといいかモナー
最近sedは使ってないから漏れはやり方知らんw
2008/03/18(火) 14:24:00
どの文字列にもマッチしない正規表現ってどう書くんでしょう?
2008/03/18(火) 16:47:03
(?<=a)a
2008/03/19(水) 09:09:37
空文字列にもマッチしない?
2008/03/19(水) 23:02:47
しないよ
というか自分で試せよ
2008/03/21(金) 00:44:43
710って、aaにマッチするよ
戻り読みの位置が違うんじゃね?
2008/03/21(金) 20:07:35
(?!a)a
こうかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況