正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
03/11/19 21:42ID:Kst3Nn4Sこのスレは有用そうな正規表現を紹介したり、どう表現したらいいかわからないときに質問をしたりするためのスレッドです。
質問するときは使用言語や得たい結果をなるべく詳しく書きましょう。
註:& や " を書くときには、& " と描いておきましょうね。
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Regex::Diagram.pm
http://www.cc.rim.or.jp/~midorin/mad-p/RegexDiagram.html
正規表現
http://www.cc.rim.or.jp/~midorin/mad-p/perl/benkyou/PRC2kRegex/
UNIX正規表現入門 目次
http://www01.u-page.so-net.ne.jp/jc4/hiroyuki/rex_index.html
Regular Expression(Riue ちゃんの正規表現講座) - Index
http://www.sixnine.net/regexp/
ほとんどは↓のリンク集にまとまっています。
正規表現最新リンク集2002
http://www2.famille.ne.jp/~akio1998/l_grep.html
過去スレ
正規表現道場@2ch
http://pc.2ch.net/test/read.cgi/php/996105815/
正規表現道場@2ch Part2
http://pc2.2ch.net/test/read.cgi/php/1038146241/
0951nobodyさん
05/01/08 19:29:22ID:???実はHTMLタグの削除と正規表現は相性が悪かったり。
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq9.html#How_do_I_remove_HTML_from_a_stri
それでもやるとしたら、
$str =~ s/<a\s[^>]*?>(.*?)<\/a>/$1/ig;
ぐらいかな。
一部が残るのは分からない。
0952nobodyさん
05/01/08 19:49:31ID:/O5s2fuehttp://rinristarin.value-net.net/22/fir/ リリカちゃんが
エッチしたら更新する日記。最近ずっとこの子に萌えっす。
俺ともお願いぃぃ・・・
0954nobodyさん
05/01/08 21:06:07ID:???0955nobodyさん
05/01/09 10:04:16ID:???@data = split(/:/, $str);
だと、余分な区切りまで・・・
0956nobodyさん
05/01/09 10:17:30ID:???0957nobodyさん
05/01/09 10:32:46ID:???@data = $str =~ m/^([^:]*):(.*)/;
0959nobodyさん
05/01/11 22:33:00ID:nnjmq/8Zhttp://*.hoge.jp/
ってどうやって書くんでしょう?書籍とかと数時間格闘しましたが
ぱっさり理解できないのです
0961nobodyさん
05/01/11 22:42:43ID:???0962nobodyさん
05/01/12 00:48:18ID:mmvJMOP+文字列 = "例えば(その1)や(その2)など";
で( )の中身をとりたいんすけど素直に"/\((.+)\)/"とすると
"その1)や(その2"がマッチしてしまいます。
"/\(([^\(]+)\)/"とすると"その1"しかマッチしてくれません。
whileを使ってもうまくいきません。どのようにしたらいいでしょうか。
phpでpreg_matchしています。
0963nobodyさん
05/01/12 00:56:34ID:???そしてpreg_match_allの間違いじゃないのか
0964nobodyさん
05/01/12 00:58:27ID:???0965962
05/01/12 01:10:13ID:???それでいけました。
使ってるリファレンス本にpreg_match_allがのってなかったので気付きませんでした。
きちんとマニュアル読むようにします。
0966959
05/01/12 13:29:58ID: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]
こっちは正しく動作しました。
0967nobodyさん
05/01/12 14:01:55ID:???*は直前の文字が0以上繰り返される、という意味なので、上の式がマッチするのは
http://.hoge . . .
http:////.hoge . . .
http:///////////////////////////////////////////////.hoge . . .
など。
どんな文字でもマッチさせるには、「.」の0もしくは1以上の繰り返し、と書けばいいんだが、
あらゆるパスにマッチする正規表現はかけてるのに、あらゆるサブドメインにマッチする
正規表現が書けないとはこれいかに。
0968nobodyさん
05/01/12 14:04:36ID:???正規表現で「 * 」は「直前の文字や正規表現を 0回以上繰り返す」という意味なので、
上の例の「 /* 」の箇所で「 / を 0回以上繰り返す」という意味になっちゃってる。
おそらくそこでやりたいのは「アルファベットを 1回以上繰り返す」だと思うので、
「 !^http://[a-z]+\.hogehoge\.jp/.*$ 」とすればいいんじゃないかな。
「 + 」は 1回以上繰り返す意味。
0969nobodyさん
05/01/12 15:11:10ID:1iafFrJp<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>を外すっていうのをやりたいです。
どうしたらいいですか?
0971959
05/01/12 15:19:29ID:???ありがとうございます。
教えていただいたhttp://[a-z]+\.hogehoge\.jp/.*$
で上手く行きました。
本当に助かりました。感謝感激です
0972nobodyさん
05/01/12 17:23:47ID:???アンカータグ全部要らない、ってことなら、
何も考えずにとにかく <a ...> と </a> を取り除いちゃえばええのでは。
0973nobodyさん
05/01/13 20:32:10ID:rZkv4VMuのような文字列の
{__hoge__}とカッコ等が付いたものと、hoge と文字のみの2つを取得したく
以下のようにしてみました。
preg_match_all("/\{__(.+)__\}/","$str","$match");
一行に {__(.+)__} 形式の文字が一つしかない場合は、上手くいくのですが
二つ以上あるばあい、{__hoge__}{__piyo__} と最大のマッチをしてしまいます。
最小のマッチをさせるには、どうすればいいのでしょうか?
0976nobodyさん
05/01/15 14:08:23ID:DsGxQZIFあるとされるディレクトリ(例でいう./)を調べて、そのファイルがあるかどうかをチェック
したいのですが、引数のファイル名最後のスラッシュ以後を消す方法が分かりません。
どういった正規表現を用いれば良いのでしょうか?
0978nobodyさん
05/01/17 03:16:40ID:???ファイルテスト演算子とは知りませんでした(死
ところで、その引数から、拡張子とディレクトリ構造?(./、../、/)を消して
ファイルの名前だけを知りたいのですが、(./ディレクトリ名/**.txtでいう**)
そういう時は以下みたいに3段かませばいいですか?
$name = "./test/test.txt";
$name =~ s/\A\.|\A\.\.//g;
$name =~ s/\A\/|\A\/\S*\/|\S*\///g;
$name =~ s/\.\S*$//g;
うまく取得できない例外は起きそうでしょうか?
0979nobodyさん
05/01/17 03:36:56ID:???ファイル名を取り出したいなら
$name = "./test/test.txt";
$name =~ /.+\/(.+)/;
print $1;
test.txt
ファイル名のみに置き換えたいなら
$name =~ s/.+\/(.+)/$1/;
$name = "./test/test.txt";
print $name;
test.txt
0980nobodyさん
05/01/17 04:07:56ID:???0984980
05/01/17 11:53:51ID:???立てますた。
正規表現道場@2ch Part4
http://pc5.2ch.net/test/read.cgi/php/1105930285/
0985nobodyさん
05/01/17 15:42:34ID:???ネタごとに補足、でいいのかな
0986nobodyさん
05/01/18 06:55:18ID:???正規表現じゃない方が楽なら、
そっちを教えてあげるのが
優しいお兄さんとしての役割。
正しい誘導をしてあげていると思います。
0988nobodyさん
05/01/19 08:19:55ID:???え
さ
を
0989nobodyさん
05/01/20 02:09:00ID:???&1105930285;
0990nobodyさん
05/01/20 12:41:11ID:???0991nobodyさん
05/01/20 12:56:21ID:???0992nobodyさん
05/01/20 12:57:20ID:???0993nobodyさん
05/01/20 13:05:58ID:???バカって言ったんだよ、バーカ。
0994nobodyさん
05/01/20 13:16:13ID:???0995nobodyさん
05/01/20 13:17:39ID:???0997nobodyさん
05/01/20 13:31:15ID:FNQvtzHY0998nobodyさん
05/01/20 13:51:09ID:???0999nobodyさん
05/01/20 13:55:38ID:???1000nobodyさん
05/01/20 13:55:54ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。