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


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

正規表現 Part6



1 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:36:04 ]
正規表現(Regular Expression)スレです。

質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。

【 前スレ 】 正規表現 Part5
pc12.2ch.net/test/read.cgi/tech/1212498448/

331 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:16:07 ]
grepで置き換えとか無理だろ。
Javaなら20行未満で書けるレベルの処理だが。

332 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:35:11 ]
>>331
は? 置換だけならJavaでも10行未満でいけるだろ。
それより20行未満でCSV処理はどうなったのかな?
布団被って泣いてるのかな?w

333 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 04:12:55 ]
まー落ち着けよ。

Javaなら20行未満で書けるレベルの処理で大人気ないな

334 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 04:21:09 ]
とりあえず落ち着きませんか?

Javaなら20秒未満で書けるレベルの処理で大人気ないと思いますよ

335 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 07:14:09 ]
これは落ち着いたほうがいいかもわからんね

Javaなら20%未満のやる気で書けるレベルの処理で大人気ないっていう感想を持つ人もいるだろうし

336 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 08:05:54 ]
以上、正規表現もJavaも全く解らない人たちが大喜びの映像をお届けいたしました。

337 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 08:22:25 ]
Javaなら20行未満で書けるレベルの処理で勝利宣言されてもなあ…

338 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:51:23 ]
sedでいいじゃない

339 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:58:45 ]
javaでいいじゃない



340 名前:デフォルトの名無しさん [2009/08/20(木) 08:01:32 ]
viで

341 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 10:41:35 ]
javaで書ける、って言うけど
どうせ javaで正規表現を書くんだろ?

 pattern = Pattern.compile("\\([^\\)]*?(ABC)[^\\)]*?\\)");

みたいな。やたら \ が増えまくって、かえって見にくい。
ディレクトリの区切り文字の \ にマッチさせるのに

 pattern = Pattern.compile("\\\\");

って \ を4回も書かなきゃならん。 \ 地獄だ。武○士だ!

342 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:05:04 ]
Emacs Lisp の正規表現に比べたら別に大したことない。

343 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:33:59 ]
>>341
ん?
\xがエスケープシーケンスになる言語はみんなそうなんじゃないの?

>>342
うむ。


344 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:41:20 ]
>>343
文字列から生成する場合に限ればな
正規表現リテラルが存在する言語ならそれに付き合う必要はない

345 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:01:57 ]
あーそうだった。忘れてた。thx


346 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:19:05 ]
> pattern = Pattern.compile("\\\\");

ワロス
アホすぎるwww

347 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:43:56 ]
よし、夏休み最後の一週間はJavaを勉強しちゃうゾ! ><

348 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 20:54:36 ]
>>347
20行係を任ず

349 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:53:56 ]
正規表現を使いこなしてる人でも、間違った正規表現を書いちゃうことってよくあるの?



350 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:57:39 ]
間違った正規表現すら使いこなすよ

351 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:52:56 ]
間違ってる事がわからないから、全部正解

352 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:10:06 ]
想定したパターンが間違ってたってことは割とある
単語の文字列にハイフンが含まれることを考慮してなかったり

353 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:19:40 ]
>>330
すんません、ありがとうございます。
シェルよくわからんのでしたが、すんごい参考になりました。

おかげでなんとか出来ました。
ありがとうございます。

354 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 00:05:17 ]
日本語版でないですかね

Regular Expressions Cookbook
oreilly.com/catalog/9780596520687/
www.amazon.com/dp/0596520689/

355 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:48:49 ]
色々試してみたのですがうまく動かないので教えてください。

●正規表現の使用環境
PHP 5.2.5

●検索か置換か?
検索 & 置換

●説明
絵文字用の文字列変換を考えています。
フォームのテキストエリアに入力された文字列から
##で囲まれた文字列を検索し置換したい。

●対象データ
いい天気ですね##A0F1##!!
(AF01は固定ではないです)

●希望する結果
##AF01##にヒットし、さらにAF01のみに置換したい。

自分が考えた正規表現は /#[2][A-F|0-9]{4}#[2]$/u
ですが、うまく動きません・・どなたかお願いします。

356 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:16:28 ]
PHPはよう知らんが

s/##([A-F0-9]{4})##/$1/g

じゃないのか?



357 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:11:44 ]
>じゃないのか?
って。
そうして質問を質問で返すんだろ。
よっぽど自信がないのか。
なんかバカっぽい。

358 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:12:25 ]
>じゃないのか?
って。
どうして質問を質問で返すんだろ。
よっぽど自信がないのか。
なんかバカっぽい。

359 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:11:15 ]
いま、ものすごくバカっぽいレスを目にした気がした。



360 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:21:38 ]
>どうして質問を質問で返すんだろ。
「質問を質問で返すな」と言い切る自信はないらしい。

361 名前:355 mailto:sage [2009/08/26(水) 11:28:27 ]
>>356
ご返信ありがとうございます。
試してみたのですが、期待した動作にならなかったです。


362 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:28:28 ]
>>357
ろくに回答もせず、人のレスに難癖付けるだけ、か…

哀れだな


363 名前:355 mailto:sage [2009/08/26(水) 14:10:51 ]
あれから、色々自分で試行錯誤して

/#{2}([A-F|0-9]{4}#{2})/

でヒットするところまでは持っていけました。
後はなんとかなりそうなので、がんばってみます。
なんだかスレが荒れてしまったみたいで申し訳ありません。

364 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:19:43 ]
おかしいのがはりついてるせいだから、あんま気にせず。

365 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:26:40 ]
PHPはよう知らんが >>356 のでいけたよ。
# s/.../.../g とかは Perl 特有な演算子なのでそこらへんはよしなに

$str = preg_replace('/##([A-F0-9]{4})##/', '$1', $str);

これでどうですか?

366 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:55:40 ]
>これでどうですか?
って。
どうして質問を質問で返すんだろ。
よっぽど自信がないのか。
なんかバカっぽい。

367 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 15:17:15 ]
マジレスすると

(?:^|[^#])
##([A-F0-9]{4})##
(?:$|[^#])

368 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 15:28:42 ]
「これでどうですか?」は質問じゃないだろ。

369 名前:367 mailto:sage [2009/08/26(水) 15:54:37 ]
ん?
「####AF01##」のような文字列も置換していいのか。
条件反射してすまなかった。



370 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 16:36:03 ]
/#{2}([A-F|0-9]{4}#{2})/ の縦棒(|)は多分こういう意味では?と予想。

/#{2}([A-F]{2}[0-9]{2})#{2}/

371 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:08:01 ]
>>370
「対象データ」の「##A0F1##」にマッチしなさそう、とか。

372 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:40:08 ]
>>370
文字クラスの連結のつもりだったとエスパー。


373 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:46:50 ]
355です。

>>365
ありがとう!まさにこれが期待した動作です。
Perlに詳しくなかったのでPHP風に直せなかった自分の力不足で
動かなかったなどと言ってすみませんでした。

>>367
####AF01##は##「##AF01##」の部分だけ置換したいと思っています。
##は意味もなく使わせないようにしたいのですが、ユーザーがどういう意図で
使うかはわからない部分もあるのでそうしています。

後は答えていただいた方法をうまく組み込んでみます、ありがとうございました。



374 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:51:36 ]
>>372
A-F|0-9はうまい方法が思いつかなかったのでこうしてます。

要するにA-Fまでと0-9までの半角英数字4文字が続いている場合となります。
0CAFの場合もありますし、DA16など4文字は確定で入り乱れている状態です。

これをうまく表現する方法がわからなかったので
調べながら書いてみたら動いたのでとりあえずこれでやってました。

375 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:01:24 ]
>>374
[A-F|0-9]は、A-Fか0-9か'|'という意味だ。
つまり[|A-F0-9]や[A-F0-9|]も同じ意味になる。

おまえがやりたいことは[A-F0-9]で出来る。

まだ正規表現に慣れていないみたいだが、
Webアプリ開発では必須のスキルなので
これから勉強していくといい。

まずはフクロウ本を買うところから始めるべし。


376 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 19:23:33 ]
| は ( ) の中で使うときと { } で使うときでは意味が違う。
最近のガキは前後の文脈で判断せずに
ピンポイントだけ見て反応する。
悪いクセだ。

377 名前:誤字った mailto:sage [2009/08/26(水) 19:24:20 ]
| は ( ) の中で使うときと [ ] で使うときでは意味が違う。
最近のガキは前後の文脈で判断せずに
ピンポイントだけ見て反応する。
悪いクセだ。

378 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 19:38:26 ]
>>377
自己紹介?

379 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 19:40:23 ]
( ) の中ってなに。。



380 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 20:38:26 ]
{}かな。

381 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 23:33:37 ]
拗音の「ぁぃぅぇぉゃゅょァィゥェォャュョ」と促音の「っ」が複数個連続した場合にSAPI5を使うソフトウェアがハングアップします。
ところが「うわぁぁぁぁ」のような表現は日常的に存在しているためにそのたびにハングアップして閉口してます。
正規表現で小さい文字を大きくすることは可能ですか?


382 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 23:40:53 ]
ょぅι゛ょ

383 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 23:54:43 ]
s/ょぅι゛ょ/ 妖女/

384 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 23:57:31 ]
こすると大きくなるよ

385 名前:デフォルトの名無しさん mailto:sagesage [2009/08/27(木) 00:04:25 ]
こすったら膿出てきた

386 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:18:54 ]
淋しい病気ですか

387 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:32:52 ]
>>386
下手糞なツッコミ
もっと激しく!!

388 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 10:57:46 ]
>>381
s/ぁぃぅぇぉゃゅょゎァィゥェォヶャュョヮ/あいうえおやゆよわアイウエオケヤユヨワ/g

389 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 11:01:29 ]
性器表現だけじゃできなそうだな。



390 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 11:20:00 ]
tr/ぁぃぅぇぉゃゅょゎァィゥェォヶャュョヮ/あいうえおやゆよわアイウエオケヤユヨワ/

s/ぁ/あ/g
s/ぃ/い/g
s/ぅ/う/g
s/ぇ/え/g
s/ぉ/お/g
s/ゃ/や/g
s/ゅ/ゆ/g
s/ょ/よ/g
s/ゎ/わ/g
s/ァ/ア/g
s/ィ/イ/g
s/ゥ/ウ/g
s/ェ/エ/g
s/ォ/オ/g
s/ヶ/ケ/g
s/ャ/ヤ/g
s/ュ/ユ/g
s/ョ/ヨ/g
s/ヮ/ワ/g

391 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 18:29:07 ]
どうでもいいけどそれは SAPI5 とやらを直すべきではないのか?

392 名前:デフォルトの名無しさん [2009/08/27(木) 19:12:10 ]
マッチするなら電子メールアドレスである事が保証できる
正規表現を教えて下さい

393 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 19:24:33 ]
完全にやるのはひどくおおごとで、
かつルール違反のアドレスが結構ある。

とりあえず使えればいいのであれば、メールアドレス 正規表現 で検索

394 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 19:44:38 ]
DoCoMoもauも、ちょっと前までは連続ドット(RFC違反)の
メールアドレスが普通に作れちゃったから困ったもんだ。

395 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 19:52:12 ]
>>392

まずググる、という発想すらできない君にはこれがお似合いだよ

.+@.+



396 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 21:16:55 ]
>>391
「暗いと不平を言うよりも、すすんで明かりをつけましょう」

397 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:41:53 ]
>>395
それじゃあ
> マッチするなら電子メールアドレスである事が保証できる
を満たしてないだろ。

これなら条件を満たすだろ。

[a-z]{6,30}@gmail.com

398 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:53:56 ]
こっちの方がいい

[^@]+@gmail.com

399 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:58:02 ]
>>397-398
やりがちだよなぁ、\.comとかのエスケープ忘れ
しかもそうそう異常判定が起きないから潜在的なバグになりやすい



400 名前:397 mailto:sage [2009/08/28(金) 00:26:28 ]
>>399
ごめんなさい。反省します。

>>398
それだと「マッチするなら電子メールアドレスであることが保証できる」が満たせないよね。

401 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 00:57:19 ]
命題トリックだな

402 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 01:02:24 ]
連. はイケないとか
"に囲まれてるなら@も連.もおkとか
イカレてるわ

403 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 01:22:04 ]
正規表現だけでなんとかしようって方がイカレてるわ

404 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 09:38:08 ]
到達できないアドレスは電子メールアドレスとして保証されていると言えるの?

405 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 12:21:25 ]
一般的には言えないかもしれないけど、
そこはこのスレのお題の範疇を超えるんで、気にしなくて良いんじゃないかと思う。

406 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 12:30:48 ]
俺はKENT氏が使っているこれを利用してるけど

/[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/

407 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:25:52 ]
KENT氏(笑)

408 名前:デフォルトの名無しさん [2009/08/28(金) 13:30:29 ]
KENT氏()笑

409 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:39:48 ]
はいどうぞ ttp://www.din.or.jp/~ohzaki/mail_regex.htm



410 名前:デフォルトの名無しさん [2009/08/28(金) 13:43:16 ]
>>409
うんざりしたw

これはRFCが悪い。

411 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:27:48 ]
>>406
これはひどい。
local-partの記号類をまったく受け付けないじゃん。
Gmailの拡張アドレスが弾かれちゃうね。


412 名前:デフォルトの名無しさん [2009/08/28(金) 14:29:02 ]
>>411
「マッチするなら電子メールアドレスである事が保証できる 」
を満たせばおkなんじゃないの?

413 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:37:11 ]
極端な話だけど/foo@example\.com/も条件を満たすよ
>>397はそういうジョークだろう


414 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:24:14 ]
>>412
そういう意味ならなおさら >>406 はまるでダメでしょ。
電子メールアドレスでないものも余裕でマッチする。

415 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:27:38 ]
これはどうなん?

search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlfaq9.pod#How_do_I_check_a_valid_mail_address?

416 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:33:15 ]
>>415
ああ、俺もそれ使ってるわ。

日本語の解説はこれな。
ttp://blog.livedoor.jp/dankogai/archives/51189905.html


417 名前:デフォルトの名無しさん [2009/08/28(金) 15:40:45 ]
>>416
そのページにあるリンク先見てて思ったんだが
[.] とか [@] って何の意味があるんだろ。

ときどき目にするんだが。。

418 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:04:50 ]
>>417
[@]はあんまり意味がないと思うけど、[.]は\.を使うよりいい(見やすい?)と、Damian Conway先生が
言ってたような気がする。

419 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:16:48 ]
>>415
そこに書いてある、このモジュールを使えばいいんかな?

RFC::RFC822::Address -- RFC 822 style address validation. - search.cpan.org
search.cpan.org/~abigail/RFC-RFC822-Address-2009040601/lib/RFC/RFC822/Address.pm



420 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:43:24 ]
>>417
[@] は配列が展開されるのを防ぐのかな?

421 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 16:47:38 ]
>>409
ジョークか?

422 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 21:11:37 ]
Javaでも20行未満で書けるレベルの処理だろうに。

423 名前:デフォルトの名無しさん [2009/08/28(金) 21:23:59 ]
>>422
それもう面白くないよ。

424 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:58:46 ]
    /:::::::ヽ____/::::::::ヽ、
   丿 ::.__  .:::::::::::::  __  ::::ヽ_       ,. 、       /   /
  / /。 ヽ_ヽv /: /。ヽ  ::::::ヽ    ,.〃´ヾ.、  /  /
 / / ̄ ̄√___丶  ̄ ̄\  ::::| / |l     ',  / /
 | .:::::::::: / / tーーー|ヽ     ..::::: ::|r'´  ||--‐r、 ',   javaなら20行で書ける!!
 | .:::::.  ..: |    |ヽ   .,..ィ'´     l',  '.j '.    javaなら20行で書ける!!
 | :::    | |⊂ニヽ| |  'r '´         ',.r '´ !|  \
 | :    | |  |:::T::::| !  l!     ....:.:.:.:.:.:ヽ、   ,l    \
 \:    ト--^^^^^┤   ゝ、.,_ ---‐‐‐----ゝ、ノ

425 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 02:27:04 ]
ちなみにJavaなら20行未満で書けるぞ

426 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 07:51:01 ]
\ 地獄ですね

427 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 09:40:01 ]
「全然」が現れてから次の「。」までに「ない」「なく」「なかった」「ません」が来ない文にマッチさせるには?

428 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:41:16 ]
/全然(?!ない|なく|なかった|ません).*。/

429 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:23:45 ]
松来未祐と金田朋子のRADIOデコピンないと、ひぐらしのなく頃に、本当にすまなかったと思っている、うちのタマ知りませんか
等もマッチしなくなるよ



430 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 14:01:20 ]
>>429
字面だけで処理しようってんだから、そこまで気にしてやる必要は無いんではないか

431 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 22:57:51 ]
>>428
"全然勝負にならない。" にマッチしちゃうよ。






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

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

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