Perlについての質問箱
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG質問したいこともあるしね、というわけでいきなり質問させてください
今Perlで正規表現の勉強をしていますが正規表現のあたりでつまづいています
「正規表現」とは文字が数式の一種という概念はわかるのですが、参考書の文献には
…「メタ文字」とはその文字字自信にマッチするのではなく、特別な機能を持つ文字です。
例えば「.」はメタ文字で任意の一文字とマッチします。そのため文字列「Abc」「ABC」「Axc」「A=c」
にマッチする正規表現は次のように書くことが出来ます
A.c
メタ文字には次のものがあります
\ . ・ + | ( ) [ ] { } ^ $
どの文字がメタ文字になるかは局面によって変わります…
これについての使い方が以後のこれらの文字についての説明を読んでも今ひとつぱっとしないのです。
この使い方を図説で説明されていないんですね。だれかこの使い方について
説明できる人いませんか?お願いします。
0002名無しさん@Meadow
NGNG0003デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/993665608/
http://pc.2ch.net/test/read.cgi/tech/991994996/
質問の意味がわかりません。
0004デフォルトの名無しさん
NGNG『Perlスクリプティング入門』という本ですよ
それまでは例としてスクリプト載っていたやつを実際に打って確かめてみるやり方で
いままでやってみたんだけど・・・このばあいの「検索」はどういう意味ですか?
>>3
こっちの説明が足りないってことかな?
0006デフォルトの名無しさん
NGNGあなたの言う質問箱って、質問するだけなのですか?
だれも答えなくてもいいんですか?
っていうか糞スレですか?
0007デフォルトの名無しさん
NGNG確認してないけど。
0008デフォルトの名無しさん
NGNG俺Perl知らないんだけど、その引用(らしき)文を読む限りじゃ
メタ文字=ワイルドカードみたいなもん
じゃないの?
0009hiroyuko
NGNG0010デフォルトの名無しさん
NGNG重複、1 に質問なので糞スレ度 2 に認定しよう。
おそらく、「Perl の質問スレ」 はなかったので立てたと反論するだろうが。
このスレを薦めとく。
CGIに依存しないPerlの話題一般
http://pc.2ch.net/test/read.cgi/php/991313362/
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGPerlは結構使えるっぽいけどどうよ?
http://pc.2ch.net/test/read.cgi/tech/991994996/l50
だろ。
全スレ見たってホントですか?>>1
0013デフォルトの名無しさん
NGNG0014名無しさん@Emacs
NGNGこのスレとは直接関係ないけどプログラム板に来るような人なら(perlのに限
らず)正規表現はひととおり知っておいた方が便利だよ。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1015398955/
0019hiro ◆hiroHsTw
NGNGCGIプログラミング入門」ってやつ読んでる
内容は古いけどわかりやすいです
0020デフォルトの名無しさん
NGNGほとんど糞だが(wara
0021デフォルトの名無しさん
NGNG00221
NGNGでも、これは自分専用ではなくて他の人が使っても構いません。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025学者
NGNG0026ごろさん
NGNG「2」と表示させたいのですが、どうすればいいのですか?
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG@Arr = m/あいう/g;
$num = @Arr;
で、いいんじゃねーの?
0030初心者
NGNGactiveperlダウンロードしてインストールしたのに、
うまく入ってないみたい・・・。
どなたか、xpですでにperl入れたよって方、
もしくは入れ方わかるよって方、
簡単にでいいのでやり方を教えてもらえませんか???m(__)m
0031このスレsageてくれ
NGNG>perl -v
って打ってみろ。
0032初心者
NGNGどうもありがとうございました!
0033デフォルトの名無しさん
NGNGそれで解決したんですか?(汗
0034デフォルトの名無しさん
NGNGインストール先を間違えたので、一端アンインストールしたいのですが、
フォルダを削除する以外に、どこかにpathが書かれていたりしますか?
フォルダ削除だけで良いものか、教えて下さい。
0035デフォルトの名無しさん
NGNG素人が調子に乗るな。
0036デフォルトの名無しさん
NGNG後は環境変数が追加されてるかな。
003734
NGNG追加と削除にActivePealが無かったので焦りました。
AS package をインストールしていたようで、
ActivePerl 5.6.1 Windows MSI 版を上書きインストールして、
そこから削除する事ができました。 (多分 ^^;
>>36さん
どうもありがとうございました。
0038デフォルトの名無しさん
NGNGこれは、どう置換されるのですか?
0039デフォルトの名無しさん
NGNGじゃないかな?
0040デフォルトの名無しさん
NGNG最後のeの部分がよくわからないのです。
ふだんPerlは使っていないんですけど、記事の中で使われていたので、どういう意味なのかと。
0041デフォルトの名無しさん
NGNG「アプリケーションの追加と削除」でアンインストールする。
既にフォルダとかを消してしまった場合は、同じ条件で再インストール後、
「アプリケーションの追加と削除」からアンインストール。
それでもダメならOSから入れなおしてちょ。
004234
NGNGアンインストール無しのバージョンを入れてしまったので、
アンインストール有りのモノを同じディレクトリに上書きインストールして
その後、「アプリケーションの追加と削除」からアンインストールしました。
アドバイスありがとうございます。
0043とんちんかん
NGNGしてるんですが、ちょっとした理由でこのログ ファイルが Unicode 形式になってしまいまいた。
でこのスクリプトで読み込んでみたら案の定白紙のテキスト ファイルを作ってくれました。
Perl で UCS2 のファイルの読み書きってできるんでしょうか?
Jcode.pmとかって使うんですか?
教えて君ですみません。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGねーストしてあのスクリプトは問題。
0046デフォルトの名無しさん
NGNG(EUCの場合)
要は先頭バイトの最上位ビットが1ならば2バイトなので
C言語ならば
c & 0x80
これでいいと思いますが、
perlの場合はうまいことやる方法がわかりません。
$kana = "漢";
@kana = unpack "H2",$kana;
#先頭バイトを確保、この場合
#$kana[0] = b4となっている
$test = pack("H2",$kana[0]);
#b4をchar系にもどして
$test = $test >> 7;
#7ビットシフトして
if ($test){print "It's Kanji\n";}
#これで $testが1ならいいと思うのですが・・・
うまくいきません。
どなたかアドバイスを・・
0047名無しさん@Emacs
NGNG0048デフォルトの名無しさん
NGNGつーかpackの使い方分かってませんね。
それ以前に@kanaの中身をしらべるっつーデバッグの基本中の基本もしてませんね。
print "ok\n" if((unpack 'C2', '漢')[0] & 0x80);
0049デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/php/1019917048/
__END__
0050質問
NGNG何かいいサブルーチンはないもんかね?
0051デフォルトの名無しさん
NGNG適当な値とxor取る。
0052質問
NGNG何かいいサブルーチンはないもんかね?
0053質問
NGNG0054デフォルトの名無しさん
NGNG$@だっけ?
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG00571
NGNG本当は折れのためにだけ立てたスレだったんだが、途中でそれがバレそうになって
うやむやになったけど ほかの奴まで質問してきやがって
目論見は敗れた このスレは閉鎖する サラバ!(もうあうこともないだろう)
0059奈々氏
NGNGwww5.ocn.ne.jp/~asdfg/send.cgi
www5.ocn.ne.jp/~asdfg/send.html
これなのですが、何度やっても
500 Internal Server Error
とでてしまいます。パールのパス、jcode.pl、cgi-lib.plの位置は確認しました
やはり文法エラーなのでしょうか。
詳しい方、指導お願いします。
ちなみに『ocnはCGI使えないよ』とかそういうあたりまえの突っ込みはやめてください
ocnにうpしたのはソースを見てもらうためです。
0060そんじゃ
NGNG0061奈々氏
NGNG使えます
確認しました
0062デフォルトの名無しさん
NGNGパーミッションは?
0063デフォルトの名無しさん
NGNGプログラムを大幅に削って、次の行だけで CGI として
ちゃんと動くのかを確認して欲しい。
--------------------------------
#!usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html><body>\n";
print "メールを送信しました<hr>";
print "</body></html>\n";
--------------------------------
#!/usr/local/bin/perl
ではないのか、が気になった。
「パールのパス、・・・・・・・・・は確認しました 」
と、書いてあっても、やっぱり気になる。
0064デフォルトの名無しさん
NGNG0065質問
NGNGブラウザからPOSTやGETで送信されるときと
まったく同じ状態にURLエンコードしたいんだけど、
s/(\W)/'%'.unpack("H2", $1)/ego;を使ったら
%A5%ADじゃなくて%a5%adの様に小文字になってしまうし、
あと半角文字もエンコードされてしまう。
おまえら何かいい方法はありませんか?
0066デフォルトの名無しさん
NGNG挨拶くらいしていけ
0067デフォルトの名無しさん
NGNG別に小文字も大文字も意味は同じじゃねーか、ヴォケ。
いやなら大文字にしろ。
半角文字がエンコードされるなんてあたりめーだろ、氏ね。
仕様書読め、糞
uc EXPR
EXPR を大文字に変換したものを返します。
0068shige
NGNGなんと程度の低いスレッドだ。
0069デフォルトの名無しさん
NGNG0070shige
NGNG0071shige
NGNG生まれてきてごめんなさい
生まれてきてごめんなさい
生まれてきてごめんなさい
0072shige
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGurl_encode() で改行文字とかをエンコードすると
%0a じゃなくて %a に
なって、それをデコードできないという・・。
なんか思い出したのれす。
007565
NGNGレスどうも。そうか、ucってすればいいのか。
とりあえず、「意味」が欲しかったわけではなく、
「形」が欲しかったので。
ただ、ブラウザのフォームから送信する場合は、
半角は特別な記号以外はエンコードされないはずだが。
そっちは未解決。
0076デフォルトの名無しさん
NGNG$noenc_char = '[^A-Za-z0-9.,エンコードシタクナイモジヲスキナダケドウゾ]';
$str =~ s/($noenc_char)/uc unpack 'H2', $1/ego;
007765
NGNGスマソ、今変換してみたら半角はエンコードされなかった。
まったく
「半角文字がエンコードされるなんてあたりめーだろ、氏ね。 」
だなんて、初心者だと思ってからかうなよ(藁
007865
NGNGあ、こりゃ便利だ。
今度使わせてもらう。
0079デフォルトの名無しさん
NGNGやり方を教えてもらえないでしょうか。。。
こういうのに使えるPPMとかってありますか?
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGsystem関数で。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGワロタ
008879
NGNGsystem関数で解凍ソフトのコマンドラインを
実行するように書いたらうまくいきました。
ありがとうございます。
自分の持ってる入門書には
system関数なんて載っていなかったっス。。。
0089デフォルトの名無しさん
NGNG0090perlでgzipをダイレクトに扱うには
NGNGアクセスして圧縮解いて文字列処理することってできるんですかね。
やはり一度どこかのテンポラリーに圧縮解凍してからそれを読み込まないと
だめですか?
簡単な方法あったら知りたいのでお願いです。
0091デフォルトの名無しさん
NGNGCompress::Zlib
0092perlでgzipをダイレクトに扱うには
NGNGそれ使うとfopenでダイレクトにgzファイルをテキストファイルみたい
に扱うことができるの?
どっか使い方のサンプルとか出てるサイトないですかね?
0093デフォルトの名無しさん
NGNGCompress::ZlibはCライブラリのzlibのPerlインタフェイス。
ファイルハンドルと圧縮ファイルを連結させるにはIO::Zlibってのがある。
入手、ドキュメントはCPANへ。
英語だがガッツがあればそれなりにいける。
http://search.cpan.org/search?dist=Compress-Zlib
http://search.cpan.org/search?dist=IO-Zlib
0094デフォルトの名無しさん
NGNGprint "りんごは英語で?: ";
$answer = <STDIN>;
chomp($answer);
if ($answer == apple) {print "ご名答!!\n";}
else {print "ごめんなさいはずれです。\n";}
0095デフォルトの名無しさん
NGNGperl -wc hogehoge.pl ってやると文法チェックしてくれるよ。
009694
NGNG009794
NGNG直した後チェックしてみたのですが、文法は間違ってなさそうです。
どうしてうまくいかないのでしょうか?
0098デフォルトの名無しさん
NGNGeq(==), gt(>), ge(>=), lt(<), le(<=), cmp(<=>)
になっております。お間違いのないようよろしくお願い致します。
009994
NGNGなるほど文字列は数列と違うのですね。ありがとうございました。
0100100
NGNG0101棄教者 ◆witdLTi2
NGNG$answer == "apple" とやると、
$answer に入っている文字は空文字列じゃないので「真」を返します。
"apple"は空文字列じゃないので真を返します。
比較演算子 == は
左辺の返り血である「真」と右辺の返り血である「真」を比較して
真を返します。そういうわけです。
試しに$answerに空文字列または0を入れてみて下さい。
つぎに0.0を入れてみて下さい。結果がどうなるかを報告して下さい。
■ このスレッドは過去ログ倉庫に格納されています