[過去ログ]
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g (989レス)
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g http://tamae.5ch.net/test/read.cgi/php/1069245758/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
965: 962 [sage] 05/01/12 01:10:13 ID:??? 963さん、964さんありがとうございました。 それでいけました。 使ってるリファレンス本にpreg_match_allがのってなかったので気付きませんでした。 きちんとマニュアル読むようにします。 http://tamae.5ch.net/test/read.cgi/php/1069245758/965
966: 959 [] 05/01/12 13:29:58 ID:o9KFPT4S レスありがとうございます。 直リンクを防ぐために httpd.confを次のように弄ったのですが、 上手く動作しませんでした。 サブドメインからのアクセスなら、 サブドメインが何でも、直リンクにはならないように設定したいのです。 自宅サーバー板で正規表現を勉強しろ、とのコメントをいただいて、 悪戦苦闘してるんですが、パッサリ理解できないのでございます。 RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://*\.hogehoge\.jp/.*$ [NC] RewriteRule ^(.*)$ - [F] これは動きませんでした。 RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://abc\.hogehoge\.jp/.*$ [NC] RewriteRule ^(.*)$ - [F] こっちは正しく動作しました。 http://tamae.5ch.net/test/read.cgi/php/1069245758/966
967: nobodyさん [sage] 05/01/12 14:01:55 ID:??? > !^http://*\.hogehoge\.jp/.*$ *は直前の文字が0以上繰り返される、という意味なので、上の式がマッチするのは http://.hoge . . . http:////.hoge . . . http:///////////////////////////////////////////////.hoge . . . など。 どんな文字でもマッチさせるには、「.」の0もしくは1以上の繰り返し、と書けばいいんだが、 あらゆるパスにマッチする正規表現はかけてるのに、あらゆるサブドメインにマッチする 正規表現が書けないとはこれいかに。 http://tamae.5ch.net/test/read.cgi/php/1069245758/967
968: nobodyさん [sage] 05/01/12 14:04:36 ID:??? >>966 正規表現で「 * 」は「直前の文字や正規表現を 0回以上繰り返す」という意味なので、 上の例の「 /* 」の箇所で「 / を 0回以上繰り返す」という意味になっちゃってる。 おそらくそこでやりたいのは「アルファベットを 1回以上繰り返す」だと思うので、 「 !^http://[a-z]+\.hogehoge\.jp/.*$ 」とすればいいんじゃないかな。 「 + 」は 1回以上繰り返す意味。 http://tamae.5ch.net/test/read.cgi/php/1069245758/968
969: nobodyさん [] 05/01/12 15:11:10 ID:1iafFrJp <a name="a193"></a><dt> <span class="2ch_number">193</span> : <span class="2ch_name">以下、名無しにかわりましてVIPがお送りします</span>: <span class="2ch_date">05/01/12 13:43:10 ID:Zzzz4wKL</span></dt> <dd> <a href="http://jumpres/read.cgi/news4vip/1105500214/183"><a href="http://jumpres/183">>>183</a></a> のレスをよく見ていえよ <a href="http://jumpres/read.cgi/news4vip/1105500214/187"><a href="http://jumpres/187">>>187</a></a>! <br><br></dd> ↑のこういう一行(長いから改行してるけど)から>>999の左右にある<a></a>を外すっていうのをやりたいです。 どうしたらいいですか? http://tamae.5ch.net/test/read.cgi/php/1069245758/969
970: nobodyさん [sage] 05/01/12 15:18:40 ID:??? >>999をサブパターンにとって、リンク全体をそれに置換してやればOK。 つかアンカータグのネストなんかぶっちゃけありえない http://tamae.5ch.net/test/read.cgi/php/1069245758/970
971: 959 [sage] 05/01/12 15:19:29 ID:??? >>967-968 ありがとうございます。 教えていただいたhttp://[a-z]+\.hogehoge\.jp/.*$ で上手く行きました。 本当に助かりました。感謝感激です http://tamae.5ch.net/test/read.cgi/php/1069245758/971
972: nobodyさん [sage] 05/01/12 17:23:47 ID:??? >>969 アンカータグ全部要らない、ってことなら、 何も考えずにとにかく <a ...> と </a> を取り除いちゃえばええのでは。 http://tamae.5ch.net/test/read.cgi/php/1069245758/972
973: nobodyさん [] 05/01/13 20:32:10 ID:rZkv4VMu abcdefg{__hoge__}hijklmn のような文字列の {__hoge__}とカッコ等が付いたものと、hoge と文字のみの2つを取得したく 以下のようにしてみました。 preg_match_all("/\{__(.+)__\}/","$str","$match"); 一行に {__(.+)__} 形式の文字が一つしかない場合は、上手くいくのですが 二つ以上あるばあい、{__hoge__}{__piyo__} と最大のマッチをしてしまいます。 最小のマッチをさせるには、どうすればいいのでしょうか? http://tamae.5ch.net/test/read.cgi/php/1069245758/973
974: nobodyさん [sage] 05/01/13 20:44:16 ID:??? >>973 preg_match_all("/\{__(.+?)__\}/",$str,$match); http://tamae.5ch.net/test/read.cgi/php/1069245758/974
975: 973 [sage] 05/01/13 22:43:11 ID:??? >>974 ありがとふ。 やっぱりそれか。出来てたのに見落としてしまっていた orz http://tamae.5ch.net/test/read.cgi/php/1069245758/975
976: nobodyさん [] 05/01/15 14:08:23 ID:DsGxQZIF Perlで、引数としてファイル名を受け取った場合に(例えば ./test.pl)、そのファイルが あるとされるディレクトリ(例でいう./)を調べて、そのファイルがあるかどうかをチェック したいのですが、引数のファイル名最後のスラッシュ以後を消す方法が分かりません。 どういった正規表現を用いれば良いのでしょうか? http://tamae.5ch.net/test/read.cgi/php/1069245758/976
977: nobodyさん [sage] 05/01/15 14:56:01 ID:??? >>976 そんなことで正規表現を使ってどうするよ。 「ファイルテスト演算子」でぐぐれ。 http://tamae.5ch.net/test/read.cgi/php/1069245758/977
978: nobodyさん [sage] 05/01/17 03:16:40 ID:??? >>976 ファイルテスト演算子とは知りませんでした(死 ところで、その引数から、拡張子とディレクトリ構造?(./、../、/)を消して ファイルの名前だけを知りたいのですが、(./ディレクトリ名/**.txtでいう**) そういう時は以下みたいに3段かませばいいですか? $name = "./test/test.txt"; $name =~ s/\A\.|\A\.\.//g; $name =~ s/\A\/|\A\/\S*\/|\S*\///g; $name =~ s/\.\S*$//g; うまく取得できない例外は起きそうでしょうか? http://tamae.5ch.net/test/read.cgi/php/1069245758/978
979: nobodyさん [sage] 05/01/17 03:36:56 ID:??? そんなに何行も書くほどのことじゃない。 ファイル名を取り出したいなら $name = "./test/test.txt"; $name =~ /.+\/(.+)/; print $1; test.txt ファイル名のみに置き換えたいなら $name =~ s/.+\/(.+)/$1/; $name = "./test/test.txt"; print $name; test.txt http://tamae.5ch.net/test/read.cgi/php/1069245758/979
980: nobodyさん [sage] 05/01/17 04:07:56 ID:??? ふつー File::Basename じゃね? http://tamae.5ch.net/test/read.cgi/php/1069245758/980
981: nobodyさん [sage] 05/01/17 07:42:04 ID:??? >>980 "正規表現道場" http://tamae.5ch.net/test/read.cgi/php/1069245758/981
982: nobodyさん [sage] 05/01/17 09:08:29 ID:??? >>980 次スレを http://tamae.5ch.net/test/read.cgi/php/1069245758/982
983: 980 [sage] 05/01/17 11:48:08 ID:??? >>981 正規表現を使うのが適切でないときに「正規表現を使うな」と指摘するのは "正規表現道場" にふさわしくないと? http://tamae.5ch.net/test/read.cgi/php/1069245758/983
984: 980 [sage] 05/01/17 11:53:51 ID:??? >>982 立てますた。 正規表現道場@2ch Part4 http://pc5.2ch.net/test/read.cgi/php/1105930285/ http://tamae.5ch.net/test/read.cgi/php/1069245758/984
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 5 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s