• ベストアンサー

perlを使って英文だけを取り出したい。

ren10の回答

  • ren10
  • ベストアンサー率52% (9/17)
回答No.2

sub omit{ $_[0] =~ s/\W//g; return $_[0]; } 文字コードを EUC として こんな感じでどうでしょう?

ayaka19801201
質問者

お礼

ご返答が遅れて申し訳ありません。 正常に変換することができました。 ありがとうございました。

関連するQ&A

  • perlを使って英文だけを取り出したい。(UTF-8の場合)

    perlを使って英文だけを取り出したい。(UTF-8の場合) 下記perlは、UTF-8で記述されています。 この場合、$str1のように、英文が混じっています。 その中から、英語だけの文字を取り出すことは、できないでしょうか? もし、簡単なサブルーチンなどご存知でしたら教えてください。 宜しくお願い致します。 $str1 = "さま z a マ な mo じ が ハイ っ ています。"; $str2 = &omit($str1); sub omit{ } print "$str2"; 結果出力 --------- z a mo

    • ベストアンサー
    • Perl
  • Perlのサブルーチンで連想配列(ハッシュ)を渡す

    Perlのサブルーチンで連想配列(ハッシュ)を渡す方法 -------------------------------------- $str=rep::replace(%A,$B,@C); -------------------------------------- sub refidrep ( \%\$\@ ){ my(%A,$B,@C)=(@_); } -------------------------------------- では、上手くいきませんでした。 どのようにしたら、連想配列をサブルーチンに渡せるのでしょうか? 分かる方いらっしゃいましたらご教授ください。

    • ベストアンサー
    • Perl
  • perlで英数字を取り出すには?

    Perlで英数字下記の条件で取り出したいのですがどのようにすればよいでしょうか? ご返答いただけるととても助かります。 宜しくお願い致します。 条件 英数字と半角文字とスペースのみを取り出したい。(それ以外の文字は半角スペースに置き換えたい。) また、連続するスペースは削除したい。 ------------------ $str ='※第25回Ski Festival開催'; $str =~ ???????[0-9A-Za-z ] print $str; ------------------ 期待する結果 25 Ski Festival

    • ベストアンサー
    • CGI
  • perl use strict; と ファイルハンドルについて

    perl use strict; を使うと、単純なエラーが防げると認識していますが、下記スクリプトでは役に立たなかったようで、このエラーを探すのに苦労しました。 他にも、どこかのサブルーチンでsortを使ったスクリプト中で、$aを使った時もおかしな挙動をしたことがあります。 use strict;の使い方は正しいと思うのですが、エラーを出してはくれないものでしょうか? また、このようなエラーをしないために安全なプログラムの書き方はありますか? use strict; open(F,"<file.txt"); while(<F>){ &abc($_); } close(F); sub abc(){ my $str = shift @_; open(F,">>file2.txt"); print F $str; close(F); }

    • ベストアンサー
    • Perl
  • Perlです。サブルーチンについて

    以下の文はあっていますでしょうか。 # サブルーチンを呼び出して引数は 3 とする。 # そして返ってきた戻り値を変数$aに代入せよ。 $a=&a(3); # サブルーチン名aせよ。 sub a{ # $_[0]が引数 3 となりプラス1して変数$bに代入せよ。 $b=$_[0]+1; # 変数$bの内容を戻り値として返せ。 return $b; } # 変数$aの内容を表示せよ。 print "$a";

    • ベストアンサー
    • Perl
  • 英文の訳をお願いします。

    下記の英文の訳をお願いいたします。 Hi can you make a special warping. 翻訳サイトなどで調べましたが、 はっきりとした訳ができませんでした。 (ラッピングのこと?) 英語は分からないので 教えていただける方宜しくお願いいたします。

  • リファレンスを使った方法を教えて下さい。

    以下例1.例2のサブルーチンの部分についてリファレンスを使った書きかたを教えて下さい。よろしくお願いします。 例1. @array1 = ('111x111', '22y2'); $str1 = 'x'; print "find '$str1': ",sagasu($str1,@array1), "\n"; @array2 = ('333x333', '44y4', '555'); $str2 = 'y'; print "find '$str2': ",sagasu($str2,@array2), "\n"; @array3 = ('666x666', '77y7'); $str3 = 'z'; print "find '$str3': ",sagasu($str3,@array3), "\n"; sub sagasu { my ($what,@area) = @_; foreach my $idx (0..$#area) { if ($area[$idx] =~ /$what/) { return $idx } } return -1; } 例2.参照(perlの引数が不安定になります。http://okwave.jp/qa1958086.html) @array1 = ('111x111', '22y2'); $str1 = 'x'; print "find '$str1': ",sagasu(@array1,$str1), "\n"; @array2 = ('333x333', '44y4', '555'); $str2 = 'y'; print "find '$str2': ",sagasu(@array2,$str2), "\n"; @array3 = ('666x666', '77y7'); $str3 = 'z'; print "find '$str3': ",sagasu(@array3,$str3), "\n"; sub sagasu { (@area, $what); (@area[0..($#_ - 1)], $what) = @_; foreach my $idx (0..$#area) { if ($area[$idx] =~ /$what/) { return $idx } } return -1;

    • ベストアンサー
    • Perl
  • 同時に二つのファイルにprintする方法

    普通print文は一つのファイルハンドルに出力しますが、それを二つのファイルハンドルに同時に同じ内容を出力する方法はありますか? sub print2 { my $str = shift; print FH1 $str; print FH2 $str; } とすれば一応二つのファイルハンドルに対して出力できますが、print文一つで簡単に済ませる方法があれば知りたいです。 IPC::Open2などがありますが、これは別の目的のものみたいですし・・・ よろしくお願いします。

  • サブルーチンについて

    下記のようなソースコードを書いたところエラーが出てしまいました。 $sum = $sample2($a); の箇所でエラーが起こっているようなのですが、解決の仕方が分かりません。 &sample1(5,'&sample2'); sub sample1 { ($a,$sample2) = @_; $sum = $sample2($a); print $sum; } sub sample2 { ($a) = @_; $b = 10; $sum = $a + $b; return $sum; } このように、サブルーチンの中に更にサブルーチンを書いて、なおかつそのサブルーチン名を一旦変数に格納して使用する場合はどのようにプログラムを書けば良いのでしょうか?? ""で囲ったりといろいろとしてもダメでした。 もちろん、$sum = $sample2($a); ではなく $sum = sample2($a); のように書けば良いとは思うのですが、一度サブルーチン名を変数に入れてから使用する場合はどのようにすれば良いのでしょうか?? ご回答の程よろしくお願い致します。

    • ベストアンサー
    • CGI
  • perl ハノイの塔の解に順番付けする方法

    プログラミング初心者です。 サブルーチンを用いて、ハノイの塔の解を求める課題で詰まっています。 解自体は求めることができたのですが、それぞれの解の順番(輪を移動させる順番)を一緒に表示させよという指示が出ており、この方法がわかりません。 表示順に上から番号を振るという考え方でよろしいのでしょうか。 まず考え方自体が違うようであれば、そこから指摘して頂きたいと思います。 よろしくお願いします。 ちなみに現状ではこのようになっております。 #!/usr/bin/perl sub hanoi { my ($no , $x , $y , $z) = @_; if( $no = $no){ hanoi ($no-1,$x,$z,$y); print "Move", $no ,"from" , "$x" , "to" , "$z" , "\n"; hanoi ($no-1,$y,$x,$z); } } print"入力された枚数のハノイの塔の解(順番付き)\n"; $data=<>*1; hanoi($data , "A" , "B" , "C");