トップページ⇒php
1001コメント313KB

正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/11/19 21:42ID:Kst3Nn4S
Perlに限らずスクリプト系言語で大活躍の正規表現。
このスレは有用そうな正規表現を紹介したり、どう表現したらいいかわからないときに質問をしたりするためのスレッドです。
質問するときは使用言語や得たい結果をなるべく詳しく書きましょう。

註:& や " を書くときには、&amp " と描いておきましょうね。

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/
029126604/02/25 20:16ID:v7alvSdo
古い話で申し訳ないっすけど。

>>269
レスどうもっす。

>Perlなら
>$hoge !~ /^mojiretu/g;
>で、文字列以外にヒットするはず

ん〜、申し訳ない、説明不足した。
正規表現で「mojiretu」が無い事にマッチしたいんですよ。
どうでしょう?
0292nobodyさん04/02/25 20:19ID:???
>>291
http://www.din.or.jp/~ohzaki/regex.htm#Without
0293nobodyさん04/02/25 22:58ID:???
!~ はマッチしないものが選ばれるはず。
0294nobodyさん04/02/26 12:30ID:pqrzwzpG
if($FORM{'comment'} =~ /\@/) { &error; }
とした場合、

@が含まれる文が、エラーになるのは
あたりまえなのですが、

病院 という語句までも制限してしまいます。
shift-jisですけど、文字コードとかが関係しているのでしょうか?
0295nobodyさん04/02/26 13:27ID:???
>>294
http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm
029629404/02/26 13:29ID:???
調べたところ、
「ァ」や「院」は@と認識されてしまうみたいですね・・・
一度、他の文字に変換してから、
元に戻そうと思います・・・
029729404/02/26 13:37ID:???
>>295
ありがとうございます。
勉強します。
0298nobodyさん04/02/26 16:11ID:???
if($word =~ /$search/o){
print $1;
}
という処理をした時に、$search内に正規表現用文字($や^等)が入っていた時
例)
$search = "[abc]"等

に、それを正規表現としてとらえてしまいます。
調べてみたところ、どうやらそれが正しい動作という事でしたが、
この$searchを単なる文字列として見て、例のような文字列の検索を行った時に
「aかbかc」ではなく、「"[abc]"という文字列」として検索するにはどうすれば良いんでしょうか。
0299nobodyさん04/02/26 16:31ID:???
>>298
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlre.html#Regular_Expressions
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlfaq6.html#How_can_I_quote_a_variable_to_us

以後、Perl の質問は http://pc2.2ch.net/test/read.cgi/php/1075545279/ へ。
0300nobodyさん04/02/27 00:44ID:28vfJb2l
どっか勘違いしてるのでしょうか?
perlなのですが、
テキストボックスに入れた数値を$in{'count'}に格納して、
それが数字じゃなければエラー出しして終わりにしたいのですが、
数値だろうと、そうでなかろうと、いかのunlessの中を通りません。

 unless ( ($in{'count'} =~ m/^[1-9][0-9]*$/) || ($in{'count'} == 0) ){
  print "Content-type: text/html\n\n";
  print "数字を入れてください。もどってください。";
  exit;
 }
0301nobodyさん04/02/27 01:04ID:???
>>300
こういうことか?

if ("hoge" == 0) { print "ZERO\n" } else { print "NON-ZERO\n" };
030230004/02/27 01:33ID:???
>>301
えっと、ごめんなさい、正確に言うと、
「正の整数」を入れてもらいたいので、そうでない場合は、エラーではじきたいのですが。。。
「dhfshfhjksad」みたいな適当な文字を入れてもエラーをすり抜けてしまうし、
「345」みたいちゃんとした「正の整数」を入れても、エラーをすり抜けてくれる。。。
0303nobodyさん04/02/27 01:46ID:???
>>300
数字は $in{'count'} =~ m/^[1-9][0-9]*$/ で真になるから unless
ブロックに入らない。(数字を含まない) 文字列を数値コンテキスト
で評価すると 0 になるので $in{'count'} == 0 で真になるから unless
ブロックに入らない。

以後、Perl の質問は http://pc2.2ch.net/test/read.cgi/php/1075545279/ へ。
0304nobodyさん04/02/27 03:08ID:zgPOAYIB
>>292
感謝!

(?:(?!foo).)*
これかぁ〜、なるほど実験しみます。
030530004/02/27 04:09ID:???
>>303

なるほど、よくわかりました。ありがとうございます。
0306nobodyさん04/02/27 21:31ID:???

0307nobodyさん04/02/28 22:17ID:???
<P class="fuga">hoge</P>

こういうタグをいったんサニタイズした文字列

<P class="fuga">hoge</P>

に対して

m/<(P|H[1-6]|ADDRESS|PRE|BLOCKQUOTE|DIV|OL|UL|DL)(| class="\w{1,20}")>(.*)<\/$1>/

こういう感じにマッチさせたいのですが、$1が働かないのはなぜでしょう。
$1に「P」が入ってうまくいくと思うのはマチガイ?
0308nobodyさん04/02/28 22:22ID:???
あ、失敗^-^;
実体参照されちまった。こうです。


&amp;lt;P class=&quot;fuga&quot;&amp;gt;hoge&amp;lt;/P&amp;gt;

m/&amp;lt;(P|H[1-6]|ADDRESS|PRE|BLOCKQUOTE|DIV|OL|UL|DL)(| class=&amp;quot;\w{1,20}&amp;quot;)&amp;gt;(.*)&amp;lt;\/P&amp;gt;/

0309nobodyさん04/02/28 22:25ID:K5IxNsG1
まことにスマン。こんどこそ。

&lt;P class=&quot;fuga&quot;&gt;hoge&lt;/P&gt;

m/&lt;(P|H[1-6]|ADDRESS|PRE|BLOCKQUOTE|DIV|OL|UL|DL)(| class=&quot;\w{1,20}&quot;)&gt;(.*)&lt;\/P&gt;/
0310nobodyさん04/02/28 22:26ID:???
>>307-309
http://www.kt.rim.or.jp/~kbk/regex/regex.html#BACKREF
0311nobodyさん04/02/28 22:32ID:???
>>310
く、なるほど。perlの特殊変数と正規表現を混同していたわけか・・・

ありがとうございました。恥ずかしい失敗ですが、一歩前進。


なんども失敗してスマン。
0312nobodyさん04/02/29 14:20ID:tS63OhT8
PHPで入力された文字がEUCの半角カナのみかチェックしたいです。
整数のみのチェックは正規表現でできました。

^[0-9]+$ 整数のみの正規表現
EUCの半角カナのみの正規表現は?
0313nobodyさん04/02/29 14:29ID:???
そこまでわかってるならヒント

^(ア|イ|ウ|エ|オ)+$
0314nobodyさん04/02/29 15:25ID:???
>>312
EUC の半角カタカナは、SS2 (8E) + JIS X 0201 カタカナ (A1-DF) だから、
こんな感じでいけそうな気がします。
いかがでしょうか。

^(\x8E[\xA1-\xDF])*$
0315nobodyさん04/02/29 17:41ID:???
マルチにレスすんなよ。
PHPスレで聞いてる
0316nobodyさん04/03/01 00:32ID:uvhpNWvz
[email protected]?subject=????
の?以降の件名部分をPHPで削除したいんだけど、

$str= ereg_replace("/?.*/", "" , $str);

では無理だった・・。
これではお話になりませんか?
0317nobodyさん04/03/01 00:56ID:???
?は0文字か1文字を表すメタ文字の予感
031831604/03/01 02:31ID:???
317さんのご指摘の元、色々やって出来た予感。
要らないかもしれないけど、書いときます。

$mail = "[email protected]?subject=件名"
preg_match("/^[\w\-\.]+@[\w\-]+\.[\w\-\.]+/","$mail", $matches);
$mail = $matches[0];

正解かどうかわかりませぬが、これでやっていこうと思います。
0319nobodyさん04/03/01 02:44ID:???
>>318
>>317 が言いたかったのは /\?.*/ と思われ。
まあそれで解決してるならいいんだけどね。
0320nobodyさん04/03/03 11:51ID:???
リモートホストを
1.英数字のピリオド区切り
2.英数字のみ
のいずれかの条件でマッチさせようと思い、
(リモホ) =~ m/^(\w+\.?)+\w+$/
などとやったのですが駄目なようで、これ以上思い浮かびません。
どうすれば良いのでしょう。
0321nobodyさん04/03/03 15:08ID:???
>>320
こうじゃね?
m/^(\w+\.)*\w+$/

もうちょっと仕様どおりちゃんとやるならこう?
m/^(?:[0-9a-z]+\.)*[0-9a-z]+$/i
0322nobodyさん04/03/04 01:43ID:???
ああそうか区切る時は前の方(やや不適切な言い方ですが)の
有無を調べれば良かったんですね。
ありがとうございました。
0323nobodyさん04/03/05 07:43ID:???
$charactorにひらがな(あーん)以外が含まれているかどうか判断したいのですが

if ( $charactor =~/[^あ_ん]/) {
print "あーんを以外含んでいます。\n";
}
というふうにしてみたのですが
上手くいきません
自分では見当がつかないのでアドバイスをください
0324nobodyさん04/03/05 10:53ID:???
>>323
-
0325nobodyさん04/03/05 11:00ID:???
Perlメモによると
># 全角ひらがな [ぁ-ん]
>$Zhiragana = '(?:\xA4[\xA1-\xF3])'; # EUC-JP
>$Zhiragana_sjis = '(?:\x82[\x9F-\xF1])'; # SJIS

なので、EUC-JPならこうかな。つかPerl分からん。
if (!$charactor =~/^(\xA4[\xA1-\xF3])*$/) {
print "ひらがな以外を含んでいます。\n";
}
0326nobodyさん04/03/05 11:53ID:???
>>324
コピペするときに間違えました。
>>325
ありがとうございます!

if ( $charactor =~/[^\x82\x9F-\xF1]/) {
print "あーん以外を含んでいます。\n";
}
これで出来るようになりました。
032732504/03/05 12:00ID:???
>>326
ちょっと待て、それじゃ誤判定しない?
ひらがな以外にマッチではなく、「『文字列がひらがなのみ』にマッチしない」としないと。
if ($charactor !~ /^(?:\x82[\x9F-\xF1])*$/) {
print "ひらがな以外を含んでいます。\n";
}
0328nobodyさん04/03/06 21:48ID:???
>321
ハイフンも使えるから
m/^([\w\-]+\.)*[\w\-]+$/
のような気が。
#ハイフンのエスケープ要るか要らないか忘れたけど
0329nobodyさん04/03/07 22:19ID:???
PHP4で@の読みの「アットマーク」「アトマク」「アツトマァク」「アット」「アツトマアク」らに
マッチする正規表現をお教え下さい。
ア[ッツ]?ト{マ[ーアァ]?ク}? とか アッ?ツ?ト{マ[ーアァ]?ク}? 
初心者なので全然だめです・・。
0330nobodyさん04/03/07 23:11ID:???
上のはメルアドはじきなのでしたけど、
@|@|(あ[っつ]?と).*|(ア[ッツ]?ト).*|(ア[ッツ]?ト).*
でいくことにします。
アットローンでもマッチしちゃうけどいいや・・・・・。
0331nobodyさん04/03/07 23:11ID:???
[アットマーク|アトマク|アツトマァク|アット|アツトマアク]
0332nobodyさん04/03/08 03:41ID:???
ア[ッツ]?ト(マ[ーア]?ク)?
0333nobodyさん04/03/08 05:41ID:???
>332 どうも。
アットローンでもアトムでもマッチしちゃうよね?
^ア[ッツ]?トマ[ーアァ]?ク$     だと「アット」「アト」がマッチしない・・・
「アット」と「アットマーク」にマッチして「アットローン」にマッチしないなんてできないのかなo(~ρ~)o zzz・・・
0334nobodyさん04/03/08 10:05ID:???
>>333
「@ローン」の読みは「アットローン」なんだけど。
マッチしなかったらおかしくないか?@はアットって読んでもいいんだろ?
0335nobodyさん04/03/08 13:19ID:???
PHPで簡単なweb上思いついたスクリプトを書き残すメモ帳のようなものを作成してるんですが
その中で「//〜〜〜\n」や「/* */」などのいわゆるコメントの部分を
色分けして表示したいのですがコメント部分とマッチさせる正規表現がどうしてもわかりません。
「/* */」については/*を<FONT COLOR=RED>/*にし
*/を*/</FONT>にしたのですがこれだと
「""」に囲まれたコメントではない部分も色分けされてしまいます。当たり前ですが・・・。
0336nobodyさん04/03/08 15:37ID:???
>>335
こんなんでいいんじゃないか

<?php
header("Content-Type:text/html; charset=Shift_JIS");

$comment[0] = "\/\/[^\n]*?\n";
$comment[1] = "\/\*(.*?)\*\/";

$msg = "TextTextText // TextText
TextText
TextTextText /* TextText */
TextText
// TextText /* TextText */ Text
Text
";

foreach($comment as $regexp){
$msg = mb_ereg_replace($regexp,"<span style=\"color:red\">\\0</span>",$msg);
}

$msg = nl2br($msg);
echo $msg;
?>
0337nobodyさん04/03/10 21:20ID:???
use Jcode;
$jis=Jcode->new($ARGV[0],'utf8')->jis;
$jis=~s/([^a-zA-Z0-9])/sprintf("%%%02lX",unpack("C",$1))/eg;
$jis=~s/%1B%28B$//; $jis=~s/^%1B%24B//; # <= separate
$jis=~s/%/\\x/g;
こいつで16進にして正規表現かけてんですが

___ファイル内のjisコード文字列____

ああ接続FTP接続うう

__________________________________


FTP接続 <= なら引っかかってくれます

接続FTP <= だと駄目です

  なぜに?
0338未承諾広告※ ◆aiY4htt2.2 04/03/10 21:39ID:???
>>337
テストもせずに s/\G と逝ってみるテスト
033933704/03/10 22:49ID:QeEknFJh
perl FTP接続 <= だとOK
FTP\x1B\x24B\x40\x5CB3

perl 接続 <= これもOK
\x40\x5CB3

perl 接続FTP <= だと駄目でつ
\x40\x5CB3\x1B\x28BFTP

s/\G と逝ってみたいんですがどこで使うんでつか

アホですまそ
0340nobodyさん04/03/11 22:13ID:???
質問させてください。

abc  abc%xyz  123  123%xyz
という4つの文字列があるときに、左から順番に、

$1 に 'abc' が代入されるようにマッチする
マッチしない
$1 に '123' が代入されるようにマッチする
$1 に '123'、 $2 に 'xyz' が代入されるようにマッチする

にはどう書けばよいでしょうか?

/^(?:(abc)|(123)(?:%(xyz))?)$/
だと、3つ目と4つ目の '123' が $2 に入る

/^(abc|123)(?:%(xyz))?$/
だと、2つ目がマッチする

/^(abc|123(?:%(xyz))?)$/
だと、4つ目の $1 に文字列すべてが入る

みたいな感じでだめでした。
わかりにくい上に低レベルな質問で
申し訳ないですがよろしくお願いします。
0341nobodyさん04/03/11 22:40ID:???
>>340
/^(\w+)(?:$|(?<![A-Za-z])%(\w+)$)/
034234004/03/11 23:05ID:???
>>341
ありがとうございました。完璧です。
こういうときに Positive Lookbehind Assertion 使うんですね。
ぜんぜん思いつきませんでした orz
0343nobodyさん04/03/22 16:58ID:JNc4vCtR
if( !reply_to || reply_to.search(/\d/) )

JavaScriptでの分岐条件ですが、
「reply_toがないか、あるいはあっても数字以外の文字が含まれている場合はtrue」
という条件式です。
上記でどうもうまく行っているのですが解せません。
数字以外の文字って「\D」ですよね。何か勘違いしていますか?

perl/CGI+JavaScriptで製作中ですが正規表現はあまりやった事ないです。
あるいは上記条件式だとどう書くのが普通ですか?
0344nobodyさん04/03/22 17:03ID:???
>>343
Web制作板で聞けよ

if (inNan(reply_to)) でどうだ?
0345nobodyさん04/03/22 17:04ID:???
if (inNaN(reply_to)) だった
0346nobodyさん04/03/22 17:54ID:???
>>345
> if (inNaN(reply_to)) だった
isNaN(reply_to)でした。
こんなんがあるんですね。
勉強になりました。
0347nobodyさん04/03/22 18:05ID:???
isNaN で良いの? isNaN("123foo") とかも false になるよ。

あと、aString.search(aRegExp) は、「マッチした位置」を返すので、
たぶん >>343 のはうまくいっていないと思われ。
マッチしないときには -1 を返すので、
if ( !reply_to || reply_to.search(/\D/) >= 0 )
とかじゃないかな?
0348nobodyさん04/03/22 18:21ID:???
>>347
falseになるわけねぇだろうが
034934304/03/22 18:24ID:???
>>347
> isNaN で良いの? isNaN("123foo") とかも false になるよ。

えーと、今回は数字以外の文字が含まれてたら false でオッケイです。
>
> あと、aString.search(aRegExp) は、「マッチした位置」を返すので、
> たぶん >>343 のはうまくいっていないと思われ。
> マッチしないときには -1 を返すので、
> if ( !reply_to || reply_to.search(/\D/) >= 0 )
> とかじゃないかな?

なるほど、、、微妙に返り値が違うんですね。
単純にブール値を返すもんだと思ってました。
勉強になりました。
クライアントサイドJavaScriptってうまく組み込むと便利ですけど、
ブラウザ依存だったりバージョン互換性の問題とか、結構微妙ですね。
いえ、今回の件とは関係ないですけど。
ありがとうございました。
035034304/03/22 18:26ID:???
>>348
> >>347
> falseになるわけねぇだろうが
ああ、そうですね。数字かどうかですからね。
trueでいいんです。
たぶんうっかりミスですね。御指摘どうも。
0351nobodyさん04/03/22 18:41ID:???
>>348
げ、処理系依存なのか。確かに IE だとならないね。
でも、 isNaN("1e0") とかは false になるよね?
0352nobodyさん04/03/29 21:33ID:???
復帰
0353nobodyさん04/04/08 15:03ID:AQ8qwK3r
"abcdeあいうえお\"fghijかきくけこ";

のようなダブルクォートで囲まれた文字列を取得したいのですが、
文字列に\"を含んでいる場合うまく取得できません。

"[^"]*"と書いているので当然と言えば当然なのですが・・・
どのようにしたら、\"を含む文字列をうまく取得できますでしょうか?
0354nobodyさん04/04/08 15:38ID:???
余計なことをせずに最長マッチさせればいいんじゃないの。
/"(.*)"/
こういうのもありかもしれないけど。
/"((?<=\\").*)"/
035535404/04/08 15:46ID:???
盆ミスー適当に修正して
0356nobodyさん04/04/08 17:11ID:???
正規表現とかその手の本には必ず出てくる例題だな。
0357nobodyさん04/04/09 17:13ID:Nk138A/f
かれこれ半日もんどりうってます....

htmlファイル中で、aタグ中のリンク先の置換をやりたいのですが、
・mailto:やtel:が含まれる場合は除外
・リンク先(href="url")のurlが、cgiやphp、jspだったら除外
というのをやりたいのです。
で、それで引っ掛かった分(htmlやhtm)を、特定の文字列に置換したいのです。

で、
/<a href="(([^(tel:|mailto:)][-0-9a-z/@~]+[^(.php|.cgi)]") ([^>]+))>/i
なんてやってるんですが、思うようにならんです。
どこがおかしいのでしょう?
先達の皆さま、よろしくおながいします
0358未承諾広告※ ◆aiY4htt2.2 04/04/09 17:59ID:???
>>357
もしかして、//i -> s///i かな?
s{<a href="((?<!tel:|mailto:).+?(?!\.php|\.cgi)".+?>)}{url=$1}i;

実証はしていませんm(_ _)m
0359未承諾広告※ ◆aiY4htt2.2 04/04/09 18:12ID:???
>>358
グダグダやね鬱。
0360nobodyさん04/04/09 19:04ID:???
>>357-358
s/<a href="((?!tel:|mailto:)[-_.!~*'()a-z0-9;\/:@&=+$,%#]+(?<!\.php|\.cgi))"[^>]*>/url=$1/i;
こんな感じ?

>>357
'?'を許さないことで、クエリストリング付きは
即時却下する所が面白いね。
0361nobodyさん04/04/09 19:08ID:???
>>357
一回のマッチで全部判定できなくもないが、分けた方が楽且つ柔軟。
言語が Perl5 なら

s{
  (
    <a
    [^>]+?
    href=(?:(")|(')|(\b))
  )
  (
    (?(2)[^"]+?)
    (?(3)[^']+?)
    (?(4)[^\s>]+)
  )
  (?=
    (?(2)")
    (?(3)')
    [^>]*?
    >
  )
}
{
  my($pre, $url) = ($1, $5);
  if ($url !~ /^(?:mailto|tel):|\.(?:cgi|jsp|php)$/i) {
    $url =~ ...
  }
  $pre . $url
}egix;
0362nobodyさん04/04/09 21:00ID:B1AI3byV
357です。
明日再挑戦します。
ありがとうございます
0363nobodyさん04/04/10 13:43ID:rupp3c37
357でつ。
360さん、361さん、ありがとう!うまくいきました。
でも、361さんのは、漏れには何をやってるのか識別不能です....鬱
0364nobodyさん04/04/14 21:47ID:8xwTd1PB
おまえらは監視されている(^▽^ケケケ
0365nobodyさん04/04/14 21:47ID:8xwTd1PB
おまえらは監視されている(^▽^ケケケ
0366 04/04/20 01:22ID:UZzv87o5
htmlファイルを読み込んで、
<a href=http://bbq.2ch.net/bbynews/i/>;速報Headline</a> を
<a href="http://bbq.2ch.net/bbynews/i/";>速報Headline</a>
の様に、href=の中身を " で括りたいのですが、
$str =~ s/(<[^>]*\bhref\s*=\s*['\"]?)([^\s\"'>]*)/\1\"\2\"/g;
としてしまうと、元々 " で括られている場合にもさらに " が付いてしまうため困っています。
" が無い場合のみ " で括るようにするにはどうすればよいでしょうか。
お知恵をお貸しくださいませ。
0367nobodyさん04/04/20 06:46ID:???
>>366
s{
  (?<=href=)
  (?:(")|(')|(\b))
  (
    (?(1)[^"]+)
    (?(2)[^']+)
    (?(3)[^\s>]+)
  )
  (?(1)")(?(2)')
}
{"$4"}gix;
0368nobodyさん04/04/20 16:41ID:2Qvzqrcy
質問させてください。
あるhtmlファイルの

<!--ここから//-->
テキストテキストテキストテキストテキストテキスト
<!--ここまで//-->

という「<!--ここから//-->」の部分と「<!--ここまで//-->」の間にあるテキストを
他のphpファイルからereg_replaceで置換したいのですが可能でしょうか?

可能な場合、上記の範囲指定は正規表現でどう書いたらよいのでしょうか?
0369nobodyさん04/04/20 17:17ID:???
>>368
http://php.s3.to/man/ref.regex.html
http://www.kt.rim.or.jp/~kbk/regex/regex.html#POSIX
0370nobodyさん04/04/20 19:05ID:???
>>369
乙
0371nobodyさん04/04/20 21:41ID:???
>>367みたいな回答はDQN丸出しだな
0372nobodyさん04/04/21 05:52ID:???
>>366
s/(<\w+\s+href\s*=\s*)(['"]?)([^\2\s>]*)\2(\s*>)/$1"$3"$4/gi;
# まんまですな。

>>371
どこらへんがDQNなの?
037336604/04/21 11:47ID:???
>>367,372
ありがとうございます。これから試してみます。
実は367は何やってるかわからないほどの素人ですが
精進します。
0374nobodyさん04/04/21 18:46ID:???
>>372
それに気づけないような頭でこのスレに来るなよ
0375nobodyさん04/04/21 19:43ID:???
>>374
もれも分からんから教えてよ
0376nobodyさん04/04/21 19:47ID:???
隊長、>>371=>>374が必死なスレッドを見つけました!
0377nobodyさん04/04/21 19:55ID:???
>>376
おいおい、もう夏の暑さが近づいているというのにまだ春厨か?
いい加減自演認定は恥ずかしいと思えよ。
俺は面白そうだから便乗しただけ



#って書いてもどうせ煽ってくる春厨だろうけど
0378nobodyさん04/04/21 19:55ID:???
隊長、>>372=>>375=>>376が必死なスレッドを見つけました!
0379nobodyさん04/04/21 20:02ID:???
俺は面白そうだから便乗しただけ
俺は面白そうだから便乗しただけ
俺は面白そうだから便乗しただけ
ワラタ
0380nobodyさん04/04/21 20:34ID:???
>>376=>>378=>>379
一人でお疲れ様

なんか必死さが伝わってくるよ、休めよ
038137204/04/21 20:49ID:???
>>374
hrefと=の間にスペースがあったり、相対アドレスの場合マッチしないからではないですよね?

んー、なんだろう。
038237204/04/21 21:03ID:???
って、煽ってただけなのか。
がっがり。
0383nobodyさん04/04/21 22:05ID:???
↓んじゃ、次の質問どうぞ。
0384nobodyさん04/04/21 22:19ID:???
>>381
いや、それで合ってるんだけどね
0385nobodyさん04/04/21 23:45ID:???
こまった人たちだな
0386 04/04/22 01:57ID:???
>>372
これをPHPで使うにはどう変更すればいいでしょうか?
preg_replace関数を使ってみたのですが、マッチしてくれませんでした。
0387nobodyさん04/04/22 06:41ID:???
>>386
$str = '<a href=http://bbq.2ch.net/bbynews/i/>;速報Headline</a>';
$result = preg_replace('/(<\w+\s+href\s*=\s*)([\'"]?)([^\2\s>]*)\2(\s*>)/i', '$1"$3"$4', $str);

こんなのでいけた。
0388 04/04/22 15:12ID:???
>>387
うまくいきました。ありがとー
条件を " でくくっててマッチしないのを、 ' に変更したらできました。
0389nobodyさん04/04/28 11:02ID:YDy2pcOH
Perl コーディング初心者質問コーナーより誘導されてきました。

sub/test.htmから<n月>という文字列がある行をマッチさせたいのですが、下のようにすると
ローカルではマッチするんですが、サーバーに上げるとマッチしなくなります。

print "content-type: text/html\n\n<html>";
open(TEST, "sub/test.htm");
while (<TEST>) {
if ($_ =~ /<.*?月>/) {print $_;}
}
close(TEST);
print "</html>";
exit;

4行目を
if ($_ =~ /<(.*?)月>/) {print $_;}
に書き換えるとローカルでもサーバー上でもマッチします。なぜでしょうか。
0390nobodyさん04/04/28 13:08ID:???
>>389
「ローカル」と「サーバー」のそれぞれの Perl のバージョンは?
スクリプトと sub/test.htm のそれぞれの文字コードは?
■ このスレッドは過去ログ倉庫に格納されています