[過去ログ] 正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g (989レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
956: 05/01/09 10:17 ID:??? AAS
@data = split(/:/, $str, 2); じゃなかったかな。
957: 05/01/09 10:32 ID:??? AAS
性器表現ならこうか
@data = $str =~ m/^([^:]*):(.*)/;
958: 05/01/09 15:20 ID:??? AAS
>>954
それだね。
s/<\/?a(\s[^>]*)?>//ig
これぐらいでもいいかも。
959(3): 05/01/11 22:33 ID:nnjmq/8Z(1) AAS
apacheの httpd.conf弄りたいんですが、
http://*.hoge.jp/
ってどうやって書くんでしょう?書籍とかと数時間格闘しましたが
ぱっさり理解できないのです
960: 05/01/11 22:40 ID:??? AAS
>>959
もっと具体的に。
961: 05/01/11 22:42 ID:??? AAS
とてもスレ違いな悪寒
962(1): 05/01/12 00:48 ID:mmvJMOP+(1) AAS
例えば
文字列 = "例えば(その1)や(その2)など";
で( )の中身をとりたいんすけど素直に"/\((.+)\)/"とすると
"その1)や(その2"がマッチしてしまいます。
"/\(([^\(]+)\)/"とすると"その1"しかマッチしてくれません。
whileを使ってもうまくいきません。どのようにしたらいいでしょうか。
phpでpreg_matchしています。
963: 05/01/12 00:56 ID:??? AAS
"/\(([^)]+)\)/"の間違いじゃないのか
そしてpreg_match_allの間違いじゃないのか
964: 05/01/12 00:58 ID:??? AAS
つーか"/\((.+?)\)/"でOKか
965: 962 05/01/12 01:10 ID:??? AAS
963さん、964さんありがとうございました。
それでいけました。
使ってるリファレンス本にpreg_match_allがのってなかったので気付きませんでした。
きちんとマニュアル読むようにします。
966(1): 959 05/01/12 13:29 ID:o9KFPT4S(1) AAS
レスありがとうございます。
直リンクを防ぐために
httpd.confを次のように弄ったのですが、
上手く動作しませんでした。
サブドメインからのアクセスなら、
サブドメインが何でも、直リンクにはならないように設定したいのです。
自宅サーバー板で正規表現を勉強しろ、とのコメントをいただいて、
悪戦苦闘してるんですが、パッサリ理解できないのでございます。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://*\.hogehoge\.jp/.*$ [NC]
省6
967(1): 05/01/12 14:01 ID:??? AAS
> !^http://*\.hogehoge\.jp/.*$
*は直前の文字が0以上繰り返される、という意味なので、上の式がマッチするのは
外部リンク:.hoge...
http:////.hoge . . .
http:///////////////////////////////////////////////.hoge . . .
など。
どんな文字でもマッチさせるには、「.」の0もしくは1以上の繰り返し、と書けばいいんだが、
あらゆるパスにマッチする正規表現はかけてるのに、あらゆるサブドメインにマッチする
正規表現が書けないとはこれいかに。
968(1): 05/01/12 14:04 ID:??? AAS
>>966
正規表現で「 * 」は「直前の文字や正規表現を 0回以上繰り返す」という意味なので、
上の例の「 /* 」の箇所で「 / を 0回以上繰り返す」という意味になっちゃってる。
おそらくそこでやりたいのは「アルファベットを 1回以上繰り返す」だと思うので、
「 !^http://[a-z]+\.hogehoge\.jp/.*$ 」とすればいいんじゃないかな。
「 + 」は 1回以上繰り返す意味。
969(1): 05/01/12 15:11 ID:1iafFrJp(1) AAS
<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="外部リンク:jumpres"><a href="外部リンク:jumpres">>>183</a></a>
のレスをよく見ていえよ
<a href="外部リンク:jumpres"><a href="外部リンク:jumpres">>>187</a></a>! <br><br></dd>
↑のこういう一行(長いから改行してるけど)から>>999の左右にある<a></a>を外すっていうのをやりたいです。
どうしたらいいですか?
970: 05/01/12 15:18 ID:??? AAS
>>999をサブパターンにとって、リンク全体をそれに置換してやればOK。
つかアンカータグのネストなんかぶっちゃけありえない
971: 959 05/01/12 15:19 ID:??? AAS
>>967-968
ありがとうございます。
教えていただいたhttp://[a-z]+\.hogehoge\.jp/.*$
で上手く行きました。
本当に助かりました。感謝感激です
972: 05/01/12 17:23 ID:??? AAS
>>969
アンカータグ全部要らない、ってことなら、
何も考えずにとにかく <a ...> と </a> を取り除いちゃえばええのでは。
973(2): 05/01/13 20:32 ID:rZkv4VMu(1) AAS
abcdefg{__hoge__}hijklmn
のような文字列の
{__hoge__}とカッコ等が付いたものと、hoge と文字のみの2つを取得したく
以下のようにしてみました。
preg_match_all("/\{__(.+)__\}/","$str","$match");
一行に {__(.+)__} 形式の文字が一つしかない場合は、上手くいくのですが
二つ以上あるばあい、{__hoge__}{__piyo__} と最大のマッチをしてしまいます。
最小のマッチをさせるには、どうすればいいのでしょうか?
974(1): 05/01/13 20:44 ID:??? AAS
>>973
preg_match_all("/\{__(.+?)__\}/",$str,$match);
975: 973 05/01/13 22:43 ID:??? AAS
>>974
ありがとふ。
やっぱりそれか。出来てたのに見落としてしまっていた orz
上下前次1-新書関写板覧索設栞歴
あと 14 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s