正規表現道場@2ch Part4

このエントリーをはてなブックマークに追加
932nobodyさん:2005/12/22(木) 11:16:59 ID:???
eregi ??
ereg-replace ?
933??:2005/12/22(木) 11:46:44 ID:VYb6VtoN
soudesu
ereg-replace
desu
sumimasen
934nobodyさん:2005/12/22(木) 15:40:37 ID:???
>933

http://jp2.php.net/manual/ja/function.ereg-replace.php

こんな感じでしょうかね?
$text = ' <span class=\'test\'>abcdefg</span>';
$text = ereg_replace('<span class=\'test\'>','<b><font color=#ff0000>',$text);
$text = ereg_replace('</span>','</font></b>',$text);
echo $text;


でも
http://jp2.php.net/manual/ja/function.str-replace.php に
「(正規表現んような)技巧的な置換ルールを 必要としない場合、
ereg_replace() または preg_replace()の替わりにこの関数を常用するべきです。」
ってあるね。
935nobodyさん:2005/12/22(木) 15:53:48 ID:???
>>934
eregi_replaceで大文字小文字を区別しないってところが技巧的なんじゃないかな
936925:2005/12/25(日) 16:01:19 ID:???
結局正規表現で表すことが出来ずに"{"と"}"を両方とも"@@@@"に変換してから
@@@@でexplodeしてループ処理しました。
ヘタレだなぁ
orz
937nobodyさん:2006/01/04(水) 21:06:51 ID:???
$aがメールアドレスかどうかPHPで簡単でいいのでチェックしたいのですが
if(ereg("[^0-9a-zA-Z@_\-\.]+",$a)){エラー処理}
だとうまくいかないようです。どこがおかしいのでしょうか?
938nobodyさん:2006/01/05(木) 13:07:16 ID:???
あげ
939nobodyさん:2006/01/05(木) 13:10:56 ID:???
940937:2006/01/05(木) 15:17:17 ID:???
>>939
ありがとうございます。参考にして試してみます。
941nobodyさん:2006/01/08(日) 16:38:18 ID:???
時(1〜12)を正規表現であらわしたいのですが、
どうすればいいでしょうか?
[1-12]ではもちろんだめぽですよね・・・
942nobodyさん:2006/01/08(日) 16:42:11 ID:???
{0,1}と?ってどっち使っても一緒?
943nobodyさん:2006/01/08(日) 16:43:23 ID:???
>>941
そんだけの情報でダメかどうかなんて判断つかんだろ。
944nobodyさん:2006/01/08(日) 17:30:16 ID:???
少なくとも [1-12] がだめなことは判断つくな(w
945nobodyさん:2006/01/08(日) 17:37:14 ID:???
[1-9]|(1[0-2])?
946nobodyさん:2006/01/08(日) 18:03:28 ID:???
[1-9]|1[0-2]
947nobodyさん:2006/01/08(日) 18:16:03 ID:???
1[0-2]?|[2-9]
948nobodyさん:2006/01/08(日) 21:20:50 ID:???
そういう類の質問は大概にして正規表現で何から何まで片付けようとしているのが間違いであることが多い。
949nobodyさん:2006/01/09(月) 05:39:24 ID:DKtQK5nB
1-9と-(ハイフン)を指定する場合、
[1-9-]であってる?
それともエスケープしなきゃならんのでしょうか。
950nobodyさん:2006/01/09(月) 12:21:39 ID:???
OK
951nobodyさん:2006/01/09(月) 16:46:54 ID:???
hoge以外に一致させる場合どう記述すればよかとでしょうか?
[^hoge]だとhとoとgとe以外になってしまいますよね
952nobodyさん:2006/01/09(月) 17:32:03 ID:???
そんぐらい自分で試行錯誤すりゃわかるだろ
少し自分で考え、実験してみてそれでもわからなくなったら質問しろ
953nobodyさん:2006/01/09(月) 17:46:24 ID:???
$var = "<A>";
preg_match_all("/<A>/", $var, $array1);
preg_match_all("/A/", $var, $array2);
phpなんですが、$array2にはAが入ってるんですが、
$array1には<A>が入りません。

<>が問題ありなのは分かりますが、根本的理由が分かりません。
へるぷみー
954nobodyさん:2006/01/09(月) 18:06:11 ID:???
>>953
結果の画面のソース見たらわかるんじゃないの
955nobodyさん:2006/01/09(月) 18:32:37 ID:???
>>951
質問の時は使用言語を書いてほしいんだ。
http://www.din.or.jp/~ohzaki/regex.htm#Without
956953:2006/01/09(月) 19:07:16 ID:???
>>954
通常は問題ないはずということでしょうか?
エラーメッセージ等は表示されておらず、ソースを見ても理由が分かりません。
957953:2006/01/09(月) 19:15:11 ID:???
954さんの言ってることが理解できました、ありがとうございます
タグとして処理されてました・・・鬱だ・・・
958nobodyさん:2006/01/09(月) 20:01:37 ID:???
>>951
否定の先読みとか使えばいいのかな。
959nobodyさん:2006/01/09(月) 21:15:45 ID:???
>951

>483-491
>902-909
960nobodyさん:2006/01/09(月) 21:16:25 ID:???
何でもかんでも正規表現でやろうとするなっ
961nobodyさん:2006/01/09(月) 22:03:59 ID:???
正規表現は万能です!
962951:2006/01/09(月) 22:19:51 ID:???
phpでは^(?!文字列)のような拡張はないでしょうか?
963nobodyさん:2006/01/09(月) 22:32:14 ID:???
964馬鹿です:2006/01/09(月) 23:13:46 ID:3zyjeInA
perlを勉強しています。教えてください。
正規表現で例えば、全角カタカナを表したら、[ァ-ヶ]と
(?:\xA5[\xA1-\xF6])と(?:\x83[\x40-\x96])とありますよね。
この中のどれを使えばいいんでしょうか?後の2つはeucとsjisと
いうことは分かるんですが結局[ァ-ヶ]を使えばどちらでも(eucとsjis)
使えるということなんでしょうか?初心者ですいません。。
965nobodyさん:2006/01/09(月) 23:29:38 ID:???
>>964
Jperlじゃないと日本語(の2byte文字)に対応してないから
[ァ-ヶ]じゃ無理なんよ。
966nobodyさん:2006/01/09(月) 23:46:07 ID:???
>>965
せんせー、これ上手くいくんですけど。

use encoding qw(shiftjis);
my $str = "アノネキュウタロウハネ";
$str =~ /^[ァ-ヶ]+$/ and print "true";
967nobodyさん:2006/01/10(火) 00:01:48 ID:???
encodingを使えばいいかな。でも>>965はPerlメモを見て
言ってるんでしょ。あの文脈ではencodingなしでってこと
だから(ちょっと苦しい)…
で、>>965さんの疑問には、スクリプトと対象ファイルと
端末の文字コードが同じなら「はい」、そうでなきゃ、
STDIN=>'euc-jp', STDOUT=>'shiftjis'などを組み合わせなきゃ
化けるよというのが答えか。
968nobodyさん:2006/01/14(土) 15:10:11 ID:???
他スレから流れてきました。
平仮名すべてとカタカナすべてにマッチさせるのは

$s =~ /[あ-ん]|[ア-ン]/; ですか?
それとも
$s =~ /[あ-ん]|[ア-ン]/; ですか?
969nobodyさん:2006/01/14(土) 22:33:31 ID:???
性器表現でアーンですか。
970nobodyさん:2006/01/14(土) 23:10:54 ID:???
[ぁ-ん]|[ァ-ヶ]
971nobodyさん:2006/01/15(日) 00:17:54 ID:???
(i)
972nobodyさん:2006/01/15(日) 02:59:40 ID:4XZbfZj+
そういえば、Perl5.8でShift-JIS(cp932か?)の2バイトがふつーに使えてるんだけど…なんで?
エンコードとかしてない。
973nobodyさん:2006/01/15(日) 03:42:27 ID:???
>>970
jperl使ってるときだけ
974nobodyさん:2006/01/15(日) 17:10:26 ID:???
>>972
ふつーに使えてるってなによ。
1文字ごとに処理すれば、使えないよ。lengthとか…
975nobodyさん:2006/01/18(水) 02:18:59 ID:4mLPDnIV
んあ。わかった。つまり、
禿→\x00\x00
で評価されてるわけか?
やば…なおさな…。
976nobodyさん:2006/01/18(水) 11:59:38 ID:???
<Files ~ "\.(php|cgi)$">
~ は何を表すものでしょうか?
977nobodyさん:2006/01/18(水) 12:38:10 ID:???
978nobodyさん:2006/01/20(金) 05:37:59 ID:???
こんちわ^^
サーバを移転しましてーその対応を.htaccess中でRedirectMatchにて付けようとしています
http://AAA.HOST/CCC/modules/kif/index.php/display.php?kid=123456

http://BBB.HOST/CCC/index.php?cmd=kif&cmds=display&kid=123456
に飛ばしたいのですが
RedirectMatch /CCC/modules/kif/index\.php/display\.php\?kid=(.*)$
http://BBB.HOST/CCC/index.php?cmd=kif&cmds=display&kid=$1だと
引っ掛かりもしません><
ご教授頂ければ有難いですーm..m
979nobodyさん:2006/01/20(金) 07:59:25 ID:???
>>978
RedirectMatchはクエリストリングにはマッチしないしクエリストリングの変換もできない
980nobodyさん:2006/01/20(金) 08:23:23 ID:???
すれ違い棚
RewriteEngine on
RewriteRule /CCC/modules/kif/index\.php/display\.php$ \
http://bbb.example.com/CCC/index.php?cmd=kif&cmds=display&%{QUERY_STRING} [R]
981nobodyさん
>>979-980
ありがとうですー
が下位の階層が全部403になりますorz
スレ違いっぽいんで、RewriteRuleの勉強してきますー^^