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


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

正規表現道場



1 名前:nobodyさん [2007/01/11(木) 02:40:43 ID:uW7xEbZY]
【正規表現道場の掟】

・言語不問

・質問も大歓迎。使用言語を書くのを忘れずに。

正規表現と関係ない話・質問は他スレへどうぞ。

376 名前:nobodyさん mailto:sage [2008/09/02(火) 00:14:52 ID:???]
<a href="entry-(\d+)-18.html">(.*?)</a>

377 名前:nobodyさん [2008/09/02(火) 09:20:23 ID:gwaiq/Cc]
>>376
うまく動きました
ありがとうございました

378 名前:nobodyさん [2008/09/02(火) 17:55:54 ID:IiWNBMxF]
バイオインフォマティックスに詳しい方いらっしゃいますか?perlを使って突然変異前後における終止コドンのカウントをしたいんですが、初心者なのでまったく分かりません・・・(涙)


379 名前:nobodyさん mailto:sage [2008/09/02(火) 18:31:39 ID:???]
先頭にhttpまたはttpを含まない
という正規表現はどう書けばいいでしょうか

380 名前:nobodyさん mailto:sage [2008/09/02(火) 18:35:50 ID:???]
!/^h?ttp/

381 名前:nobodyさん mailto:sage [2008/09/02(火) 18:37:44 ID:???]
^([^ht]|h([^t]|t([^t]|t[^p]))|t([^t]|t[^p])))

382 名前:nobodyさん mailto:sage [2008/09/02(火) 19:18:50 ID:???]
>>380
>>381
助かりました
有難うございました

383 名前:nobodyさん mailto:sage [2008/09/03(水) 09:02:07 ID:???]
^([^ht]|h([^t]|t([^t]|t[^p]))|t([^t]|t[^p])))

だとhとかttにマッチしない罠。

^($|[^ht]|h($|[^t]|t($|[^t]|t($|[^p])))|t($|[^t]|t($|[^p]))))

普通は380のようにするけどな。

384 名前:nobodyさん mailto:sage [2008/09/04(木) 10:49:47 ID:???]
^p^



385 名前:nobodyさん mailto:sage [2008/09/04(木) 10:50:59 ID:???]
^w^

386 名前:nobodyさん [2008/09/04(木) 19:48:29 ID:ZxHTo/La]
codezine.jp/article/detail/1573
こんな問題集を見つけたんだが
正規表現道場に近いな

387 名前:nobodyさん [2008/09/04(木) 21:53:09 ID:AVvRqwBM]
$が肯定先読みというのは目から鱗。

388 名前:nobodyさん [2008/09/17(水) 17:44:57 ID:TGrFERMS]
質問させてください。
OSはubuntu8.04で正規表現を勉強し始めの者です。

電話番号と郵便番号が混在しているテキストファイルから郵便番号だけ
抽出するという条件なんですが、

郵便番号はxxx-xxxx(xは0-9の数字)、電話番号はxx-xxxx-xxxx(xは0-9の数字)
で、grep -E [0-9]\{3\}-[0-9]\{4\} とやっても電話番号も全て抽出されてしまいます。
どこが間違っているのでしょうか。

389 名前:nobodyさん mailto:sage [2008/09/17(水) 17:54:16 ID:???]
その正規表現だと電話番号にもマッチしちゃうからね。

具体的には、

xx-xXXX-XXXX

の大文字Xであらわしたところ

まあ宿題なんだろうからもうすこし良く考えましょう。

390 名前:nobodyさん mailto:sage [2008/09/17(水) 19:24:47 ID:???]
>>389
grep -E ^[0-9]{3}-?[0-9]{4}$
でうまくいきました。ヒント有難うございます。

391 名前:nobodyさん mailto:sage [2008/09/22(月) 18:03:26 ID:???]
質問です。
下記のような配列の中から、
(2)〜(4)までのみを抽出したいと思っています。

 (1) testa@hoge
 (2) _testb@hage
 (3) _testc@noge
 (4) _testd@nage
 (5) _teste@n_ge

ルールとしては、
 ・頭に[_]が付いている事、
 ・@の後ろに[n_]が付いていない事
です。上記前提で下記のように書いたのですが、
これですと(2)しか抽出されませんでした。

 $test =~ /^_.*@[^(n_)]/

@の後ろの正規表現が悪いのだと思うんですが、
この場合どのように書けばいいんでしょうか。
ご教示お願いしますm(_ _)m

392 名前:nobodyさん mailto:sage [2008/09/22(月) 18:09:42 ID:???]
>>391
それじゃ文字クラスだよ。こういうときは否定先読みだろ。

393 名前:nobodyさん mailto:sage [2008/09/22(月) 18:13:12 ID:???]
/^_\w*\@\w+$/ and !/\@n_/

先頭_と@の間はどんな文字でもいいのか、@以降はどんな文字でもいいのかとか
詳しいルールはわからないが、素直に分けたほうがいいと思う

394 名前:nobodyさん mailto:sage [2008/09/22(月) 18:18:30 ID:???]
>>392-393
ありがとうございます!
とりあえず、>>392さんの方法で抽出できました。

$test =~ /^_.*@(?!n_)./

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



395 名前:nobodyさん [2008/09/25(木) 14:22:28 ID:bEreCYy4]
使用言語はPHP5です

html内のimgタグの記述部分をxhtmlにするために最後にスペースとスラッシュを付け加えたいと思い
以下の置き換えを行い成功したのですが、

$html = preg_replace('{<img (.*?)>}' ,'<img $1 />' ,$html);

元々imgタグ内にスペースとスラッシュが最後に入っているのもありますので、それ以外ということで

$html = preg_replace('{<img (.*?)^\/>}' ,'<img $1 />' ,$html);

このように記述してみましたが、これですと全部のimgタグに置き換えが効かなくなりました
どういう記述をすればよいのでしょうか?



396 名前:nobodyさん mailto:sage [2008/09/25(木) 14:30:11 ID:???]
/<img (.*?[^\/])>/

397 名前:nobodyさん [2008/09/25(木) 14:38:21 ID:bEreCYy4]
>>396
動きました
素早い回答ありがとうございました

398 名前:nobodyさん mailto:sage [2008/10/07(火) 01:09:40 ID:???]
対象が

<a href="test/index.html">あああ</a>
<a href="hogehoge1.com" target="_blank">いいい</a>

のような文字列から

test/index.html
hogehoge1.com

だけを取り出すにはどうすればよいのでしょうか?

使用言語はPHP5です。

preg_match("/<a href=\"(.*)\"\>.*/",$str,$m);

ではtarget="_blank"が残ってしまい期待通りの結果が得られません。
最短一致というのが原因かとおもい

preg_match("/<a href=\"(.*)\"{1}?\>.*/",$str,$m);

としましたが駄目でした。
アドバイスよろしくお願いいたします。

399 名前:nobodyさん mailto:sage [2008/10/07(火) 01:57:33 ID:???]
/<a\s.*?href=\"(.*?)\"/is

400 名前:nobodyさん mailto:sage [2008/10/07(火) 21:57:53 ID:???]
>>399
無事期待通りの結果が得られました!
ありがとございました!

401 名前:nobodyさん mailto:sage [2008/10/09(木) 19:29:23 ID:???]
PHP5で使います

$numには、

+数字
-数字
数字

というようなパターンの時のみマッチさせたいです
数字のところは 0〜999999999までの値が入ってきますが、0以外の時に頭に0がある場合0123とかは除外したいです
試行錯誤して下記のようにしてみましたが、思った結果が得られません。エラー出まくりでなみだ目です
どうかよろしくお願いします


preg_match('/^(([^+]*)*(++[^-][^+]*)*)*?[^0-9]*$/',$num)

402 名前:nobodyさん mailto:sage [2008/10/09(木) 19:32:07 ID:???]
[\+\-]?(?:0|[1-9]\d*)

403 名前:402 mailto:sage [2008/10/09(木) 19:33:52 ID:???]
不十分か。。

^[\+\-]?(?:0|[1-9]\d*)$


404 名前:nobodyさん mailto:sage [2008/10/10(金) 00:47:33 ID:???]
>>403
ありがとうございます
動作を確認したところ
0のみの場合と数字の部分が9桁以上でもマッチしてしまうので、

^([^0]|[\+\-]?)(?:0|[1-9]\d{1, 9}?)$

試行錯誤してこのようにしてみましたが、全くもってマッチしなくなってしまいました
どのように書けばよろしいのでしょうか?



405 名前:nobodyさん mailto:sage [2008/10/10(金) 00:58:41 ID:???]
^[\+\-]?(?:0|[1-9]\d{0,8})$

406 名前:nobodyさん mailto:sage [2008/10/10(金) 07:43:15 ID:???]
>>405
できました
ありがとうございました

407 名前:たまちゃん ◆ExGQrDul2E [2008/11/02(日) 16:02:00 ID:wDYsJgfV]
URLが、変数$urlにいくつ使われているか調べるために
preg_match_allを使いましたが、動きません。
どのようにしたらよいか教えてください。
<?php
$url = <<< URL
a
x.x
http://
google.jp/
URL;
preg_match_all ("|(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)|",$url,$out, PREG_SET_ORDER);
echo count($out);
?>

実行結果:
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'f' in /match.php on line 8
0


408 名前:nobodyさん mailto:sage [2008/11/02(日) 16:11:53 ID:???]
別の正規表現構文を探してきてコピペする

409 名前:nobodyさん mailto:sage [2008/11/02(日) 17:38:13 ID:???]
デリミタ|で始めたならm|にする必要があるっしょ
で、途中にORの意味で|使ってるから別のデリミタにしちゃいなよ

410 名前:たまちゃん ◆ExGQrDul2E [2008/11/02(日) 21:36:24 ID:0rYlog69]
>>409
回答ありがとうございます
\(・∀・)/

途中で
https?|ftp
で使っているのですが、
最初を
||
//
以外に、何を使えばよいのでしょうか?

それとも

\(エスケープ)させればよいのでしょうか?

411 名前:nobodyさん [2008/11/03(月) 20:39:21 ID:XFsZ1V0e]
文字クラス外部の?について。
URLの最短マッチさせる正規表現
(https?)
について、
この場合なら、
http
https
両方にマッチします。
(https)
これなら、
https
にしかマッチしません。
ここで、?の意味を調べたら、『(の意味を拡張。0回または1回の繰り返し最短マッチ』と書いてありました。なぜ
(https?)
これをすることによって、httpとhttpsをマッチさせられるのでしょうか?最短マッチなら、httでもいいのじゃないですか?

412 名前:nobodyさん mailto:sage [2008/11/03(月) 21:26:40 ID:???]
https? なら ?は直前のsに対して0回か1回かだからね^^

413 名前:nobodyさん mailto:sage [2008/11/04(火) 00:18:26 ID:???]
>>411
最短マッチではなく最長マッチじゃないの。
http までマッチしていることを前提にして、さらに s に対して 0 回または 1 回の
「より長い方」に優先してマッチする。

414 名前:nobodyさん mailto:sage [2008/11/08(土) 03:56:35 ID:???]
最短マッチて言葉は*?とか量指定子のあとにくるときの
解説文でよく使われるからそれとごっちゃになっちゃったんじゃないかな



415 名前:nobodyさん [2008/11/08(土) 14:37:01 ID:Ln3BC38n]
この道場にふさわしい記事だ!!!

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


416 名前:nobodyさん mailto:sage [2008/11/09(日) 02:37:50 ID:???]
>>415

正規表現がらみのスレにそのリンクはりまくってんな。
関係者?



417 名前:nobodyさん mailto:sage [2008/11/15(土) 02:31:51 ID:???]
ヤター
近所の図書館に詳説正規表現が入荷したお
まともなオライリ本は詳説イーサネットしかないとこだから嬉しい
以前は電子メールプロトコルがあったけど、
除籍されてリサイクルコーナーから旅に出てしまったよ

418 名前:nobodyさん mailto:sage [2008/11/24(月) 00:38:36 ID:???]
2つの正規表現を1つにまとめる方法はありますか?

A→か
7→イ

という2ステップ手作業でやっていることを1ステップで済ませたいのです。

419 名前:nobodyさん mailto:sage [2008/12/08(月) 02:09:36 ID:???]
PHPです。
$search="/^(.+?)<>(.*?)<>(.+)ID:(.+?)<>(.+)<>(.*)/";
preg_match($search,$res[$i],$match);
$id[$i]=$match[4];

$resは2chのdatファイルを一行ごとに配列に入れた物です。
Notice: Undefined offset: 4 (略) on 47
というエラーが出てしまいます。
47行目は$id[$i]=$match[4];です。

420 名前:nobodyさん mailto:sage [2008/12/08(月) 02:21:41 ID:???]
>>419ですが、自己解決しました。
1001の場合には、IDがないからでした。


421 名前:nobodyさん mailto:sage [2008/12/19(金) 23:54:16 ID:???]
正規表現の先生方、phpで質問させて頂きます。

$str = '[db]name[/db] たべたり [db]email[/db]';
preg_match_all('/\[db\].*?\[\/db\]/s',$str,$match);

print_r($match);



[db]name[/db] と
[db]email[/db] が抜き出されるのですが、
この [db] [/db] を無しで

name と email だけを抜き出すにはどう書けばよいでしょうか。
ご教示のほどよろしくお願いします。

422 名前:nobodyさん mailto:sage [2008/12/19(金) 23:58:55 ID:???]
\](.*?)\[\/

423 名前:nobodyさん mailto:sage [2008/12/20(土) 00:04:41 ID:???]
>>422
ありがとうございます!
このご恩忘れません。

424 名前:nobodyさん mailto:sage [2008/12/20(土) 14:46:40 ID:???]
もう忘れてるだろw



425 名前:nobodyさん [2008/12/22(月) 00:30:52 ID:EdTiga+3]
Jeditで
【あいう】を【6あいう】
【かき】を【4かき】
のように【 】でははさまれた文字列の頭に文字数×2の数値を追加したいのですが
どのように検索してどのように置換すればよいでしょうか?
【 】ではさまれた文字数はまちまちです。
よろしくお願いします。

426 名前:nobodyさん mailto:sage [2008/12/22(月) 03:02:21 ID:???]
>>425

無理だろ。

マッチした部分の長さを得る手段がない。


427 名前:425 mailto:sage [2008/12/22(月) 15:22:20 ID:???]
orz






428 名前:nobodyさん mailto:sage [2008/12/22(月) 15:42:49 ID:???]
マクロ組み合わせれば

429 名前:425 mailto:sage [2008/12/22(月) 17:01:35 ID:???]
>>427

マクロですね!
ありがとうございます。

430 名前:nobodyさん mailto:sage [2008/12/23(火) 02:31:08 ID:???]
マクロ使ってよかったのかよっ!w


431 名前:nobodyさん mailto:sage [2008/12/28(日) 04:14:06 ID:???]
失礼します
使用言語はperl5です

配列に、前からマッチしたところまでの文字列を繰り返し入れようとしています
($str = 'hogehugahage';
という文字列があって、hでマッチさせたら
@data = ['h', 'hogeh', 'hogehugah']
という配列になることを想定しています)

@data = $str =~ m/h/g;
のときは予想どおり
@data = ['h', 'h', 'h']
となったのですが、
@data = $str =~ m/^.*h/g
の場合は
@data = ['hogehugah']
となって1回最大マッチするだけのようです

どうすれば予想通りの結果になるでしょうか?

432 名前:nobodyさん mailto:sage [2008/12/28(日) 08:21:40 ID:???]
$str = 'hogehugahage';
$c= substr($str, 0, 1);
while ($str=~ /$c/go){
push(@data, substr($str, 0, pos($str)));
}
for (@data){print $_,"\n";}

正規表現使わないとダメなの?

433 名前:431 mailto:sage [2008/12/28(日) 13:37:57 ID:???]
>>432
ありがとうございます
それでいけそうです

実は正規表現を必ず使わなきゃいけないというわけではなく、
もっと簡潔にかけるならなんでも大丈夫です

434 名前:nobodyさん mailto:sage [2009/01/01(木) 19:19:28 ID:???]
先達のみなさま、Perl5+EUC環境で質問させてください

文字列の中で、漢字をのぞいた全角文字(全角数字、全角アルファベット、全角カタカナ)と
一部記号(丸括弧や全角スペースなど)以外が入っていたらマッチさせる、という処理をやろうとしています
文字クラスに許可する文字コードを細かく書いて、その否定で取れるかと思ったんですが
$txt =~ /[^xA3\xB0-\xB9]/
のような書き方まで来て、詰まってしまいました

$txt =~ /[^a-zA-Z0-1!#$ @]/
みたいな感じで、複数の文字コードを書くにはどうしたらいいんでしょうか?

ご教示お願いいたします



435 名前:nobodyさん mailto:sage [2009/01/02(金) 02:24:41 ID:???]
>>434

どうしたらいいってがんばって列挙するよりないと思うよ。

2byteのならびのあるパターンを除外したいという話だろうから、^ を使った形では
そう簡単にはかけないと思うけど。



436 名前:434 mailto:sage [2009/01/03(土) 20:08:16 ID:???]
>>435
ありがとうございます
何とか地道にがんばります

437 名前:nobodyさん mailto:sage [2009/01/15(木) 22:57:08 ID:???]
PHP5を使用しています。

<pre>タグで囲まれた文字列の中の<br />を削除したいのですが、どのようになりますでしょうか。

例)
置換前
<pre>
aaa<br />
bbbb<br />
</pre>

置換後
<pre>
aaa
bbbb
</pre>

宜しくお願いします。

438 名前:nobodyさん mailto:sage [2009/01/15(木) 23:33:28 ID:???]
$s= <<<EOT
置換前
<pre>
aaa<br />
bbbb<br />
</pre>

置換後
<pre>
aaa
bbbb
</pre>
EOT;
echo preg_replace("#(<pre>.*?</pre>)#es", "str_replace('<br />', '', '$1')", $s);

439 名前:438 mailto:sage [2009/01/15(木) 23:45:12 ID:???]
preg_replace("#<pre>.*?</pre>#es", "str_replace('<br />', '', '$0')", $s);

括弧は要らないか

440 名前:437 mailto:sage [2009/01/16(金) 00:04:22 ID:???]
出来ました!すっげ。

441 名前:nobodyさん mailto:sage [2009/01/19(月) 01:18:40 ID:???]
Irvine書式のURL展開アルゴリズムを教えてください。
・[?-?]表記による数値・アルファベットの連番
・[]内1コめの?の桁数に応じて0埋め
・[]内の展開箇所は複数可
といったところです。
言語は出来ればperl、次点でjsやvbsですが特に問いません。

以下のよう変換されるかんじです。よろしくお願いします。
>abc[1-2].jpg
abc1.jpg
abc2.jpg
>abc[09-10].jpg
abc09.jpg
abc10.jpg
>abc[1-2]de[099-101].jpg
abc1de099.jpg
abc1de100.jpg
abc1de101.jpg
abc2de99.jpg
abc2de100.jpg
abc2de101.jpg
>[a-b][01-02][4-5].jpg
a014.jpg
a015.jpg
a024.jpg
a025.jpg
b014.jpg
b015.jpg
b024.jpg
b025.jpg


442 名前:nobodyさん mailto:sage [2009/01/19(月) 03:14:04 ID:???]
>>441
回答とは全然関係ないですけど、
hからttp://とつなげて書くと、
検索エンジン等のクローラがそれら>>441のリンクを全てなめるので、
ネットワークリソース的にあまりよろしくないです…

今後そのように例示される際には
hを抜いたり大文字にしたり等、
リンクにならないよう工夫をご検討いただけると、
一インターネット利用者としては嬉しい限りです

443 名前:nobodyさん mailto:sage [2009/01/19(月) 03:23:29 ID:???]
あまりよろしくないって数字で言うとどれくらい?

444 名前:nobodyさん mailto:sage [2009/01/19(月) 03:24:54 ID:???]
サァン!



445 名前:nobodyさん [2009/01/19(月) 04:50:02 ID:cs1ls7yv]
ググったのですが、分からなかったので質問させてください。
align=left>1234567891011121345
上記を
align=left>1011121345
こう置換したいのですが
left>.*?1011121345
こうしてみたのですが、出来ませんでした。
どう置換すれば、良いのでしょうか、よろしくお願いします。

446 名前:nobodyさん mailto:sage [2009/01/19(月) 05:23:37 ID:???]
>>445
left>.*1011121345

447 名前:nobodyさん mailto:sage [2009/01/19(月) 09:02:38 ID:???]
s/>\d*1011121345//

448 名前:441 mailto:sage [2009/01/19(月) 14:17:19 ID:???]
なんだかオープンソースだったようで自己解決しました。

>>442
いまだにh抜きを強要する人っているんだね。
見ず知らずの他人一人一人を啓蒙していくよりも
管理者へ[http://」をNGワードに追加してくれるよう説得した方がいいんじゃないの?
有益であれば受け入れてくれるはず。

449 名前:nobodyさん mailto:sage [2009/01/19(月) 14:46:18 ID:???]
キミは自分さえよければ他はどうでもいいんだね。
まあがんばってよ。

450 名前:nobodyさん mailto:sage [2009/01/20(火) 02:49:36 ID:???]
>>442が強要に見えるようじゃ苦労しそうだな

451 名前:nobodyさん [2009/01/20(火) 03:53:44 ID:TjAtrikI]
ざっと眺めた感じだと
http〜リンクを見るたび指摘(要望)してしまう442
その指摘(要望)が強要に見えてしまう441
どちらも2chに向かないタイプではあるが
頻度の度合いからして苦労するのは441の方が上だな
公衆便所のトイレットペーパーが三角に折れてなかったらイラっとしちゃうタイプでそ

452 名前:nobodyさん mailto:sage [2009/01/20(火) 04:11:05 ID:???]
あ〜ハイハイ自治厨vs爆笑田中の構図ね
スレ違いだから他でやってくれ

453 名前:nobodyさん [2009/01/22(木) 00:53:40 ID:2qACQkO/]
正規表現で$文字を含む検索や置換ってど〜してます?

454 名前:nobodyさん mailto:sage [2009/01/22(木) 01:00:03 ID:???]
お前は何を言ってるんだ



455 名前:nobodyさん mailto:sage [2009/01/22(木) 02:57:05 ID:???]
>>453
$は海外の通貨記号なのでうまくいかない。
\$のようにローカルな通貨記号を重ねればうまくいく。

456 名前:nobodyさん mailto:sage [2009/01/22(木) 03:22:48 ID:???]
>>455
何言ってんだこいつ

457 名前:nobodyさん mailto:sage [2009/01/22(木) 17:35:54 ID:???]
<br>***********

-----

上記のような文字列で「*」には日本語と英語が混ざっています。
そこで、、<br>から-までの間から、英語文字だけを削除するような正規表現って無いでしょうか?
<br>から-の部分は改行が入ってます。
ご存知の方居られましたら、よろしくお願いします。

458 名前:nobodyさん mailto:sage [2009/01/22(木) 17:45:32 ID:???]
>>457
>無いでしょうか?

そりゃつくりゃあるだろ

459 名前:nobodyさん mailto:sage [2009/01/22(木) 17:56:19 ID:???]
>>458
すみません。言葉足らずでした。
普段Speeeeedをいうソフトを使っているのですが、これで>>457は可能でしょうか?


460 名前:nobodyさん mailto:sage [2009/02/01(日) 00:44:32 ID:???]
>>459
ここ正規表現のスレ
ソフトの使い方はスレ違い、ソフトウェア板へどうぞ

461 名前:OraOra [2009/02/01(日) 01:57:15 ID:2VNzjYUZ]
検索文字の中であるパターンの検索の仕方が
分からず困っています。

どなたか御教授お願いします。

プラットフォームはOracleのPL/SQLです。

検索対象は以下の日付書式の文字です。
'yyyymmdd hh24:mi:ss'

以下のように正規表現の結果を関数で受取り
その結果をチェックしています。

bool_result := regexp_like('20080230 11:20:22','(20)[0-9]{2}(0[1-9])|1[0-2])(0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-4]):([0-5][0-9]):([0-5][0-9])');

if bool_result then
dbms_output.put_line('OK');
else
dbms_output.put_line('NG');
end if;

現状では上記の正規表現で'0230'、'0231'のチェックが出来ず困っています。

上記の正規表現の中で'0230'、'0231'も含めてチェックする方法を
ご存知の方いましたらどなたか御教授お願いします。

462 名前:nobodyさん [2009/02/02(月) 21:43:16 ID:H9hEncfV]
「id="72157612930889935" primary="3224910389" secret="be0cf48b4f" server="3468" farm="4" photos="131" videos="0"」という文字列から、
「id=""」の数字を抜きたいのですが(この例であれば「72157612930889935」が欲しいです)

$patern = 'id="(.*)" ?';
ereg($patern,$line,$id);
echo $id[1]."<br />\n";

では最後のvideosの終わりのダブルコーテーションまで入ってしまいました。

>>421に近いと思うのですが?で最短マッチ?になるような気もしますし
>>412にあるように?は0か1回の繰り返しのようにも思うし…。
OSはCent4系、PHP4.1.3、関数はeregを使いました。どなたか助けて下さい

463 名前:nobodyさん mailto:sage [2009/02/02(月) 21:51:38 ID:???]
id="([0-9]*) とか・・

464 名前:462 [2009/02/02(月) 21:55:09 ID:H9hEncfV]
>>463
神!ありがとうございました。
?は結局使わず終いでしたが?とか難しいのを使うよかよっぽどスマートす。



465 名前:nobodyさん mailto:sage [2009/02/05(木) 13:33:36 ID:???]
?と*の意味を知ってたら難しいとかの発言にはならない

466 名前:nobodyさん mailto:sage [2009/02/06(金) 11:54:32 ID:???]
だよね。
{0,1}か{0,1,2,3...}かの違いだけだ。

467 名前:nobodyさん mailto:sage [2009/02/06(金) 16:00:49 ID:???]
質問する人は最低限基本は知ってて欲しいと思う今日この頃

468 名前:nobodyさん mailto:sage [2009/02/10(火) 00:16:26 ID:???]
F, f, t, S, P が正規表現のとき、
FtSPPP または FfSPPPP は
F(tS|fSP)P{3} より短くなりますか?

PPP と PPPP ではなく X と Y (Fの直後に来るものによってSの後に来るべきものがまったく違う場合) には応用可能でしょうか?

469 名前:nobodyさん mailto:sage [2009/02/10(火) 00:53:38 ID:???]
F(tS|fSP)PPP

470 名前:nobodyさん [2009/02/23(月) 09:51:32 ID:0L52Pp6H]
.*?
これの意味を教えて下さい。

471 名前:nobodyさん mailto:sage [2009/02/23(月) 10:49:52 ID:???]
「.」はカニだな
「*」は0匹以上の生息してるやつ最後まで
つまり、「.*」でカニがいるだけ全部を捕り尽くすという意味(昨今の乱獲問題)

そこで捕り尽くしたら絶滅するという問題を受けて「.*?」という思想が考え出された
意味は、最初にカニがいたらその一匹を捕まえて漁を止めるということ

472 名前:nobodyさん [2009/02/23(月) 15:41:23 ID:0L52Pp6H]
>>471
では、 .*? と .? の違いを教えて下さい。

473 名前:nobodyさん mailto:sage [2009/02/23(月) 17:58:21 ID:???]
>>472
「.」はカニだな
「?」は捕れるかとれないか分らないがとりあえず努力するという意味
つまり、「.?」で幻のカニ探索するという意味

474 名前:nobodyさん [2009/03/02(月) 19:46:41 ID:/g2x4kDh]
phpです。
たとえば普通に
google.co.jpと書いてあるものと
<a href="google.co.jp">test</a>と書いてある文字列があります。

この文字列内のタグになってないUrlをAタグでリンクを張りたいんですがどうしたらいいでしょうか。




475 名前:nobodyさん mailto:sage [2009/03/02(月) 21:22:30 ID:???]
httpから始まり、半角英数字と.?&%が含んでるか見ればおk

476 名前:nobodyさん mailto:sage [2009/03/05(木) 18:30:50 ID:???]
>>471
先生 ノシ
「.*?」で最初の一匹目のカニも取れませんでした。
でも幻のカニは取れたみたいです。






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

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

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