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


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

正規表現



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

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

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

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

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

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

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

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

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


395 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 01:42]
perl で質問です。

NOTE note "note" notes

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

NOTE book "note" notes

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


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



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

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

398 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/30 10:29]
s/ note / book /g
か?

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

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

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

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


402 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/31 07:45]
もっと簡単にできるかもしれないけど、
s/(^|(?<=[^\w"]))note\b|\bnote($|(?=[^\w"]))/book/g;
とかは?

> ただ、"abc note def" これも想定外で構わないのですが

後ろから数えた"の個数が奇数ならマッチしないようにして、
$b =~ s/\bnote\b(?=([^"]*"[^"]*")*[^"]*$)/book/g;
とすれば、"のマッチングが保証できる範囲ではなんとかなるかも。
前からの"の個数でマッチさせようとしたら、
可変長のlook-behindは実装してないらしい。(perl 5.8)


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

404 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/01 01:10]
>>402

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


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

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

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

お願いします。

406 名前:405 [04/04/07 15:09]
&にはマッチ
&amp;にはマッチしない

でした。すいません。



407 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/07 15:26]
>>405
Perl5 でいい?

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

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

410 名前:名無しさん@お腹いっぱい。 mailto:sage [04/04/11 14:13]
オライリーのやつ。

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

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

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

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

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

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

416 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/12 22:46]
>>414

FIND "foo" | FIND "bar"

みたいのじゃ駄目?



417 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/14 00:51]
>>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 mailto:sage [04/07/23 03:17]
なるほど、andをorに展開すればいいのか。
しかし fooかつbarかつbazを検索、つーばあい展開すんのめんどくさいなぁ。

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

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

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

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

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


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

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

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

425 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 00:25]
質問があります。

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


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



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

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

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

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

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

432 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/24 22:51]
>>431
is not UNIX

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


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

435 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/06 18:18]
ハハ*.*ハハ

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



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

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

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

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

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

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

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

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

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

442 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/08 10:13]
>>441
ハゲには無理

443 名前:436 mailto:sage [04/09/08 11:58]
何度もすいません。

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

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

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

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

ということでおk?

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


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



447 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/27 06:28:21]
性器表現

448 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/27 09:23:16]
ワロテモータ

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

450 名前: mailto:sage [04/10/13 14:29:29]



451 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/13 14:50:43]
.*

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

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

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

455 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/26 21:14:34]
rege*p

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

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

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




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

458 名前:456 mailto:sage [04/12/17 00:16:01]
>>457

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

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



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

460 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/17 11:17:13]
まことに勝手ながらこちらで続けさせてください
質問を改めます
やりたいことは
-----------------------
1) echo "/" | grep ......
2) echo "/ a b" | grep ......
3) echo "a b /" | grep ......
4) echo "/a / b/" | grep ......
-----------------------
上ですべてマッチさせて
以下はすべてはじくようにしたいのです
-----------------------
5) echo "//" | grep ......
6) echo "// /// ////" | grep ......
7) echo "/a b/ /c/" | grep ......
-----------------------
上と下の違いは、前後にスペースを含む" / "が存在するか否かです

よって以下のように考えましたが、ヒットしませんでした
echo "a / b"|grep "\</\>"
echo "a / b"|grep "\<\/\>"

どなたか修正をおねがいしますorz


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

462 名前:456 mailto:sage [04/12/17 11:23:16]
↑修正します

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

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

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

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

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

[\w.]

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

ちなみに、パールです。


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



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

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

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

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

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

471 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/21 19:26:19]
>>469
まかせた。

472 名前:名無しさん@お腹いっぱい。 [04/12/22 19:35:55]
お前らWinの.NETなんだが正規表現の質問をさせてくれ。

RegularExpressions.Regexで下の文字列を検索して<TD>から</TD>に分けたい。

string strHtml = "<TD>a</TD><TD>b</TD><TD>c</TD>"

Regex regex = Regex("<TD>.*</TD>");
MatchCollection matchcollection = regex.Matches(strHtml);

だと最長一致で "<TD>a</TD><TD>b</TD><TD>c</TD>"の1つのコレクション取得。

Regex regex = Regex("<TD>.*?</TD>");

だとやりたい "<TD>a</TD>", "<TD>b</TD>","<TD>c</TD>"の3つのコレクションが取得できる。

.*? の意味をアフォにも分かるように説明してくれ。
.*(任意の0文字以上)が?(あるかないか)だろ。
なんで思った通りに3つのコレクションが取得できるの?

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

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

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

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

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



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

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

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

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

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

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

483 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/14(土) 15:12:25 ]
ほしゅ

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

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

486 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 19:33:57 ]
ワロタ




487 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/16(月) 19:34:25 ]
保守

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

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

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

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

492 名前: ◆2fmGY.thDg mailto:sage [2005/06/02(木) 22:17:25 ]
a

493 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/04(土) 23:07:23 ]
('A`)

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

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

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

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

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



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

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

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

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


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

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


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

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

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

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

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

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

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

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



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


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

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

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

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


511 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/26(月) 20:32:51 ]
дも

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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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


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

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

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

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/01(日) 11:57:28 ]
まずは(ry

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



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


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

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


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

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


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

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


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


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

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



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

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

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

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


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

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

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

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

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

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

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

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

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

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



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

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


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

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

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

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

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

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

555 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:25:48 ]
板違い。

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

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



557 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:36:10 ]
板違い。

558 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 11:49:12 ]


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

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

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

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

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

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


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

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


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



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

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

Fruits
...

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

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

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

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

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

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

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

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

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

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/05(木) 15:46:12 ]
age

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



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

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

578 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/17(火) 01:13:12 ]
-v

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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


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

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


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



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

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

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

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

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

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


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

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

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

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

よろ

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


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

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

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



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

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

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

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

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

[a-z][^c]

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

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

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


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

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


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

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

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


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



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

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

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

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

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

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

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


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

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


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

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


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




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

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

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

0000C
がヒットする

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

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

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


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

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


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

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

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



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

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


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

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


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

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

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

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

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

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

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


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

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

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




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

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

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

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

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

\\| または

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



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

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

We are NOVA-TOMO\, right?

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

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

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


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

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



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

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

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

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


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


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

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

これが正解

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

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

ではないか?

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/04(金) 14:56:11 ]
無理に正規表現でがんばるより
他の方法を探した方がいい。

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

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


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

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

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



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

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


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

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

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


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

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

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

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

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

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

$1 $3


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

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




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

cut 使うのは反則?

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

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

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

681 名前:679 mailto:sage [2007/09/01(土) 19:15:56 ]
grepの「-w」は普通にできるのに,いざ置換で同じことをしようとすると
難しいですね.
結局Javaで処理プログラムを書きました.ありがとうございました.

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 09:09:36 ]
hogeを含む行のうち^\s*'で始まらないもの
をgrepするのにvimでは
\(^\s*'.*\)\@<!hoge
でできるようなんですが、サクラで
(?<!^\s*'.*)hoge
とするとダメでした。
これをgrepするにはどうすればいいでしょうか?

サクラ(bregexp.dll)の正規表現はPerl5互換だそうなんですが。

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 09:53:00 ]
板違い。

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 11:08:21 ]
じゃあ
hogeを含む行のうち^\s*'で始まらないもの
にマッチするPerl5正規表現を答えよ。
とします。

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/21(水) 11:28:24 ]
ム板行け。

686 名前:情報工学ばが [2008/01/15(火) 20:48:47 ]
正規表現ってなんですか?



687 名前:情報工学ばが [2008/01/15(火) 20:50:24 ]
はやく!!!
単位がないんです!!

688 名前:情報工学ばが [2008/01/15(火) 20:51:45 ]
お願いします。。。

689 名前:わし [2008/01/15(火) 20:55:01 ]
わしにはわからん。


690 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/16(水) 01:21:45 ]
>>686
【サルにもわかる正規表現入門】
www.mnet.ne.jp/~nakama/

691 名前:名無しさん@お腹いっぱい。 [2008/01/16(水) 12:24:11 ]
>>690
有難うございました。
おかげで単位取れそうやでー!!
ほな

692 名前:名無しさん@お腹いっぱい。 [2008/01/17(木) 00:37:01 ]
語り手緊急募集中!!

坐禅と見性第54章 片手の他人がたたく拍手の音
life9.2ch.net/test/read.cgi/psy/1192448109/

【仏教】悟りを開いた人のスレ 10 【鬼和尚】
life9.2ch.net/test/read.cgi/psy/1200142232/

【悟りで居る】悟りを開いた人スレ【完全お釈迦様派】
life9.2ch.net/test/read.cgi/psy/1198295563/

萬福寺行った。1.2
love6.2ch.net/test/read.cgi/kyoto/1188809052/

【茶の湯】  大徳寺について  【禅文化】
love6.2ch.net/test/read.cgi/kyoto/1145457556/

臨済宗 大本山天龍寺 2
love6.2ch.net/test/read.cgi/kyoto/1183216094/

【算盤】臨済宗 妙心寺派【金権】十五日は祝聖
love6.2ch.net/test/read.cgi/kyoto/1198725369/

★★臨済宗・癖有り布教師さん★★
love6.2ch.net/test/read.cgi/kyoto/1172800156/

臨済宗国泰寺派について
love6.2ch.net/test/read.cgi/kyoto/1151120179/

臨済宗相國寺派について
love6.2ch.net/test/read.cgi/kyoto/1146749623/

693 名前:名無しさん@お腹いっぱい。 [2008/02/24(日) 13:39:51 ]
2008-03 発売(予定)
「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円


694 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/24(日) 17:10:30 ]
バイト代が全部本で消えていく・・・

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/24(日) 18:03:30 ]
あるある

696 名前:名無しさん@お腹いっぱい。 [2008/02/26(火) 14:03:08 ]
2/1 XXXXXXXX
2/2〜2/5 XXXXXXXXX
2/7〜2/8 XXXXXXX
2/12 XXXXXXXXXX
2/20〜2/28 XXXXXXXXX

と書かれた行があり 今日より以前の日付の行を削除するにはどうすればいいですか



697 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 15:50:38 ]
それは正規表現の問題か?

698 名前:名無しさん@お腹いっぱい。 [2008/02/26(火) 17:23:03 ]
Cの構造体のようにネストする可能性のあるものを正規表現で抽出するにはどうすればいいでしょうか?

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 17:26:13 ]
無理

700 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 21:47:00 ]
>>699
正解

701 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/26(火) 22:31:20 ]
>>696
日付の切り出しを正規表現でやって、日付の判定以降はプログラムでがんばれ。

702 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 14:24:40 ]
sedを使って
2007/1/2
2007/1/23
2007/12/2
2007/12/31
のデータを
2007/01/02
2007/01/23
2007/12/02
2007/12/31
にするにはどうすればいいですか



703 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 14:28:44 ]
sed -e 's,/1/,/01/,' -e 's,/2$,/02,'

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:14:22 ]
>>703
9日近く書き込み無いのによく質問に高速で答えられますね
尊敬するとともに変態だと思います。

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:15:08 ]
別に何日書き込みがなかろうが関係ない。

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 22:36:13 ]
>>704
今時ブラウザでみてる奇特な人かな?

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

まあ、確かに4分でレスするのはちょっとすごいが
よくよく見たら 2007/3/3 とかは変換しない...
ほんとにそれでいいのか? >>702



707 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 23:43:20 ]
>>703もわざとその答えにしたんだろ。
要するに質問の仕方が悪いって事だ。

708 名前:ウサチャソ ◆/0IEZmXnQ6 mailto:sage [2008/03/17(月) 21:53:04 ]
>>702
ゼロサプレス 正規表現
とか
ゼロパディング 正規表現
とかでググってみるといいかモナー
最近sedは使ってないから漏れはやり方知らんw

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 14:24:00 ]
どの文字列にもマッチしない正規表現ってどう書くんでしょう?

710 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 16:47:03 ]
(?<=a)a

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 09:09:37 ]
空文字列にもマッチしない?

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 23:02:47 ]
しないよ
というか自分で試せよ

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/21(金) 00:44:43 ]
710って、aaにマッチするよ
戻り読みの位置が違うんじゃね?


714 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/21(金) 20:07:35 ]
(?!a)a
こうかな

715 名前:名無しさん@お腹いっぱい。 [2008/06/02(月) 10:30:14 ]
Vimでファイルの中からhttpで始まり、htmlで終るURLを抜きだしたいのですが、
どのようにすれば可能でしょうか?
いろいろと試してはいるのですが、行中の最大にマッチする等なかなかうまくできません。

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:38:21 ]
最短でマッチさせたらさせたで、
ディレクトリのどこかに .html があると破綻する



717 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 08:27:21 ]
emacs(の置換)と
perlのそれぞれで、

「日本語の文字列」を指定する正規表現が知りたいのですが、
どこを見ればよいでしょうか?

「ASCII文字を含まない文字列」でもOKです。


718 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 13:33:02 ]
>>717
(info "(elisp)Regexp Backslash")
| `\cC'
| matches any character whose category is C. Here C is a character
| that represents a category: thus, `c' for Chinese characters or
| `g' for Greek characters in the standard category table.

というのがあるんだけど、C の説明が無いね。
\cj だった気がするけど、不具合があるかもしれん。

ASCII 以外だと、↓これはいかが?
(info "(elisp)Char Classes")
| `[:multibyte:]'
| This matches any multibyte character (*note Text
| Representations::).


719 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 14:36:53 ]
>>718

ありがとうございます。emacsのinfoではなく、
elisp infoにあるんですね。

「日本文字にはさまれたascii空白」を検索したかったので、

emacsでは"¥cj ¥cj" でだいたいよさそうです。

(どういうわけか
[:multibyte:]や[:nonascii:]
という指定は
C-u C-s などではうまく動いてくれないようなのですが・・・
(ascii文字の一部にマッチしてしまう)


720 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 14:41:33 ]
>>719
> (どういうわけか
> [:multibyte:]や[:nonascii:]
> という指定は
> C-u C-s などではうまく動いてくれないようなのですが・・・
> (ascii文字の一部にマッチしてしまう)

[[:multibyte:]] としんとだめやよ。

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 18:33:15 ]
あ、そういうことか!どもです。

722 名前:名無しさん@お腹いっぱい。 [2008/09/04(木) 15:15:43 ]
ttp://codezine.jp/article/detail/1573
やたら難しいのですが。
詳説正規表現を読めば、解けるようになりますかね?


723 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/05(金) 01:34:49 ]
>>722

難しいか? それ。


724 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/18(木) 18:37:47 ]
>>722
プログラミングperlの正規表現の解説部分を
読んでもなんとかなるかも(´・ω・`)

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/28(日) 20:34:23 ]
>>722
詳説正規表現は文字通り「詳説」。
正規表現を使うことが目的の人にはヘビーすぎる。


726 名前:わいきむら [2008/10/20(月) 09:09:22 ]
空の文字クラス'[]'はどういう意味になりますでしょうか?
あと'-'が文字クラスの最後にある場合もダッシュとマッチせよ
という意味になるのでしょうか?



727 名前:わいきむら [2008/10/20(月) 09:12:46 ]
すみませんダッシュじゃなくてハイフンですか

728 名前:船木康博 [2008/10/20(月) 09:14:08 ]
さーてと、
パソコンに於ける衛生面についてカキコして、
とりあえずここらでアクティブソナーにQSYするかなー♪

・VDT症候群に注意。
・腱鞘炎に注意。
・大音量による聴覚障害に注意。

マウスは玉の有り無しで、オスとメスがあるでよ。
光にも種類があるし、トラックボールもあるし。たまには玉の辺りの掃除でもしてやってくれ。
ボタンも林檎の1個や米窓の2個じゃなくて、SUNあたりなら3個あったんじゃねぇかなぁ。
最近じゃあ、ホイールも回転方向以外に左右に振れるのもあるでよ。

最後は、鍵盤だ。雑菌が繁殖して、便所より汚いモノもあるでなぁ。
病気移しちゃあいけねぇで、触らせる相手は自分で判断して制限しろよ。
おいもかはまぐり触った手かもしれねぇし、汁がとんでるかもしれねぇからな。

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/21(火) 02:39:30 ]
>>726

中身が空の [] はわからんが、末尾のハイフンはその通り。
範囲指定じゃなくてハイフンそのものとして解釈される。


730 名前:名無しさん@お腹いっぱい。 [2008/10/22(水) 17:48:58 ]
質問させてください。

Fortranのコードから、「subroutine abc()」「 subroutine abs()」のような
サブルーチンの開始行だけをgrepで抽出したくて
grep ^\s*subroutine ./*.f90
と書いたのですが、「 subroutine」で始まる行がマッチしていないようです。
どのようにしたらこれをマッチさせられるか教えてください。

ちなみに、コード内には
「! subroutine abc()」「!subroutine abc()」なども含まれています。

731 名前:730 [2008/10/22(水) 19:23:26 ]
>>730どなたか、ほんとお願いします!!

732 名前:ウサチャソ ◆/0IEZmXnQ6 mailto:sage [2008/10/22(水) 21:00:29 ]
>>730
' とか " で括ってないとか?

話逸れるけど、grep は egrep が一番速いらしいよ。
egrep は「(・∀・)イイ!! 」grep!
なんっつってw

はぁ〜…

733 名前:730 mailto:sage [2008/10/22(水) 21:25:28 ]
>>732そのとおりでした。

grep "^\s*subroutine" ./*.f90
としたらうまくいきました、ありがとうございます。


.....なんでこんなことに.....orz orz orz

734 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/23(木) 03:40:28 ]
「(・∀・)イイ!! 」grep!

735 名前:名無しさん@お腹いっぱい。 [2008/11/08(土) 14:16:27 ]
ムズいなこれ

codezine.jp/article/detail/3039
codezine.jp/article/detail/2676


736 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/15(土) 20:26:45 ]
機能的にegrepのが遅そうな気がするけど



737 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/19(水) 14:37:34 ]
>>735
正規文法(正規言語)には定義があるけど
正規表現に「数学的に厳密な定義」は存在しないと思うんだけどねー
まあ>>51でがいしゅつだったからどうでもいいや


738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 16:15:06 ]
教えていただけますでしょうか。

1(文字列A)文字列B

というものを
(文字列A)文字列B

にするのはどう書けばよいのでしょうか。
文字列A、文字列Bとも長さは不規則です。

739 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:32:03 ]
sed 's/^.//'

740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:38:33 ]
すみませんが詳しい方のみ回答をお願いします

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 18:41:27 ]
日本語や英語など特定の文字列をgoogle検索のリンクにしたいです。
例えば、「正規表現」という文字列をgoogleのリンクにしたい場合だと、

正規表現(せいきひょうげん、regular expression)とは、
文字列の集合を一つの文字列で表現する方法の一つである。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
<a href="www.google.co.jp/search?q=%90%B3%8BK%95\%8C%BB">正規表現</a>
(せいきひょうげん、regular expression)とは、
文字列の集合を一つの文字列で表現する方法の一つである。

としたいです。ただし
・繰り返し1語1語適用することで複数の単語をリンク化する
 または一発で複数の単語をリンク化する方法でもいい
・すでにリンクされているものを二重にリンクしない
・タグ内の文字列はリンク化しない
・英語は文章内の単語が完全一致すればリンク化し、
 日本語は部分一致したらリンク化する
・英語の連語には対応しなくていい。
・リンク化したい文字列が「正規」「正規言語」などのように
 「正規」⊂「正規言語」という関係のものは想定しない
使う言語はAWK、Sed、Perlのいづれかとする。

お願いします。

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 19:14:08 ]
その質問は正規表現スレで扱う範囲を越えてます。

743 名前:名無しさん@お腹いっぱい。 [2009/05/18(月) 22:21:54 ]
8桁の10進数を文字列とみなしたとき、
下2桁が"00"でない文字列をヒットしたい。如何すればよいか?

744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/18(月) 22:33:28 ]
[0-9]{6}[1-9]{2}

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/19(火) 08:56:24 ]
[1-9][0-9]{5}([0-9][1-9]|[1-9][0-9])

746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 22:23:08 ]
正規表現でアルファベット6文字というのはどう書けばいいでしょう?

[A-z][A-z][A-z][A-z][A-z][A-z]

これじゃださいですよね?



747 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:42:14 ]
[A-z]{6}

748 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:57:06 ]
[A-z]だと[\]~_`を含むよ。[A-Za-z]{6}にしなはれ

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 10:22:05 ]
POSIX 正規表現が使えるなら [[:alpha:]]{6} とか。

750 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 10:29:36 ]
POSIX文字クラスはロケール依存の罠があるから避けた方が無難と思う

751 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:21:52 ]
POSIX 文字クラスって [[:isalpha:]] みたいのを言うんじゃなかったっけ?



752 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:23:34 ]
おっとなんか馬鹿なこと書いてしまった。

[a-z] も locale でどうマッチするかかわったりするよ?


753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 13:28:45 ]
ホント? \w とかなら変わると思うけど、
[a-z] は locale に依らず ASCII コードの範囲になるのでは?

754 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 02:14:08 ]
書き込み禁止されてた。

>>753
どのUNIXでもそうなるとは断言できないけど、locale が en_us.UTF-8 とかのときに
a-z が aAbB….yYz な集合になるものもあるよ。

POSIX的には コード順だと定義はしてはいなかったはず。



755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 08:44:18 ]
文字列の範囲はロケールに依存する。例えば、エストニア語のアルファベット
では、s の後に z があり、その後は t、u、v、w、x、y と続くので、[a-z] で
はすべての小文字のアルファベットにマッチしない

756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 05:54:23 ]
うふふ



757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 21:28:07 ]
>>754
それはlocaleの問題でもOSの問題でもないだろ
例えばlgrepはデフォルトがcase insensitiveだし


758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/26(金) 17:56:44 ]
>>757
問題が理解できてないようだな。君は話に加わらなくて良いよ。

759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/26(金) 18:09:55 ]
それだけだとかわいそうなので補足すると、
>>754 が言ってるのは case sensitivity の問題じゃないよ。

>>754 のレスの「aAbB….yYz」をよーく目をこらしてみてごらん。
ロケールによってはこういう不思議現象が起こるのよという話。

760 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:38:46 ]
ジオ落ちててonigurumaのソースが落とせん。
だれかミラー的なもの知らない?

761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:50:51 ]
いや、あったは、ミラー。<mirrorservice.orgとか

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/19(土) 19:50:17 ]
()内の、で区切られたものを
1(あああ、1) → 1(1、あああ)
2(ううう、3) → 2(3、ううう)
3(えええ、1) → 3(1、えええ)
のように入れ替えたいです。
条件は
・括弧は半角全角どちらでも対応。出力はどちらかに統一する。
・(あああ、いいい、ううう)のように3つ以上あるのは無視する

それと、こうやってもうまくいかないのは何故でしょうか?
sed -e 's/(/\(/g' -e 's/)/\)/g' -e 's/、/,/g' test.txt |
sed 's/\(([^,)]*),([^,)]*)\)/(\\2、\\1)/g'

763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/19(土) 19:51:30 ]
こうやれば望みどおりの結果は出たのですが、
汎用性が低いのでもっとちゃんとしたのを作るにはどうしたらいいですか?

#!/bin/awk -f
BEGIN { FS="((|)|\\(|\\)|、| | +)" }
{
{print $1"("$3"、"$2$4")";}
}

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/05(土) 13:45:25 ]


765 名前:名無しさん@お腹いっぱい。 [2010/06/02(水) 05:32:30 ]


766 名前:名無しさん@お腹いっぱい。 [2010/06/02(水) 17:20:06 ]
arrow3.way-nifty.com/shige/images_pc/RegExp.png
www.codezine.jp/static/images/article/1655/config.jpg
mckyblog.img.jugem.jp/20090724_436625.png
www19.atpages.jp/imagelinkget/get.php?t=v&u=makotowatana.ld.infoseek.co.jp/VBScriptRegularExpressions.png
makotowatana.ld.infoseek.co.jp/text.gif









[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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