[表示 : 全て 最新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]
正規表現

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

ということでおk?

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


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

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

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

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

454 名前: mailto:sage [04/10/13 14:29:29.net]



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

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



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

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

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

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

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

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


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

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

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

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



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

464 名前:名無しさん@お腹いっぱい。 mailto:sage [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


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

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

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

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



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

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

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

[\w.]

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

ちなみに、パールです。


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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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


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

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


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

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

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



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

www.kt.

508 名前:rim.or.jp/%7Ekbk/regex/regex.html []
[ここ壊れてます]

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

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

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

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


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

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

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

515 名前:驍竄! []
[ここ壊れてます]

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




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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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



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


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

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

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

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

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

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


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

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


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



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


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






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

前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