アプリ版:「スタンプのみでお礼する」機能のリリースについて

素人で大変申し訳ございません。

他の人が作ったPerlを改良しようと思っております。

仕様は、csvのカンマからカンマの間に入っている
文字を取得するというのですが、
英数字の場合は、正常に取得できるのですが、
半角ひらがなが入ると文字の取得ができません。


下記の$outputで、私が必要な情報を得ようと思っているのですが、
下記の右辺をどのように変えれば、半角ひらがなも取得できるでしょうか?
$output =~ s|/\*\s(([A-Z0-9_])+)\s\*/|$D->{$1}|g;
※エンコードが必要でしたら、utf-8を使いたいと思っています。

一部分の大変失礼な質問と思いますが、何卒よろしくお願い致します。

A 回答 (8件)

UTF-8を使うのであれば、


Jcode.pm
を使うといいと思います。
    • good
    • 0
この回答へのお礼

本当に素人で申し訳ございません、「全角ひらがな・漢字を使いたい」の間違いでした

何卒よろしくお願い致します。

お礼日時:2012/02/10 10:01

繰り返しますが、CSVはアプリケーション依存です。

様々なフォーマットがあります。
1) ,,間に,があるとき\,でエスケープする
2) ,,間に日本語があるときは全体を""で囲む
3) ,,間に"があるときは\でエスケープする
 などがあると思います。
 それらがわからないと正規表現は書けません。

詳しくは、
CSV形式の行から値のリストを取り出す ( http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values )
以降の記事をお読みください。
    • good
    • 0

あなたが行いたいことは本当に「csvのカンマからカンマの間に入っている文字を取得する」なのでしょうか?



>$output =~ s|/\*\s(([A-Z0-9_])+)\s\*/|$D->{$1}|g;

の右辺は正規表現部分は、カンマ~カンマの間をあらわすようなものではないですけど。
ぱっと見、
"/*空白文字"~"空白文字*/"で囲まれたアルファベット大文字・数字・アンダーバーで
構成された文字列
なのですが。
    • good
    • 0

「文字の取得ができない」というのは, 具体的にはどのような入力に対してどのような結果を期待しているところでどのような答えになってしまうのですか?



あと,
$output =~ s|/\*\s(([A-Z0-9_])+)\s\*/|$D->{$1}|g;
は何を意図しているのですか? 「csvのカンマからカンマの間に入っている文字を取得する」こととの関連性が見えないのですが.

できればファイルのオープンとか読み込みの部分も見たいねぇ.
    • good
    • 0

「半角ひらがな」を含む入力ファイルというのは、一般にはないと思いますが、どのようなエンコードでしょうか?



半角カタカナであれば、入力ファイルのエンコードは特に気にする必要はないと思います。

「csvのカンマからカンマの間に入っている文字を取得する」ということは「カンマを区切り文字と考えて、カンマの間にある文字や数字を取り出す」ということであれば、split関数が使えます。

例えば、入力ファイル(input.csv)が

ABC,アイウエオ,10000
DEF,カキクケコ,20000
GHI,サシスセソ,30000

というcsvファイルであれば、下記のスクリプトで

open(IN1,"input.csv");
open(OUT1,">output.txt");
while($line1=<IN1>){
chomp($line1);
my $tmp=$line1;
@in1=split(",",$line1);
$out1=join("\t",@in1);
printOUT1"$out1\n";
}
close(IN1);
close(OUT1);

$in1[0]にABCやDEF、GHIが入り、$in1[1]にアイウエオ、カキクケコ、サシスセソなどが入ります。
    • good
    • 0
この回答へのお礼

本当に素人で申し訳ございません、「全角ひらがな・漢字を使いたい」の間違いでした

何卒よろしくお願い致します。

お礼日時:2012/02/10 13:18

そもそも、そのCSVファイルの文字コードはなんですか?


また、CSVは、アプリケーション依存のファイルで、excelから出力されたものと、perlなどから出力されたものは異なります。

・CSVファイルの文字コード
・CSVのフォーマット

 最低限この情報がないとなりません。なお、「半角ひらがな」は、どの文字コードにもありません。
    • good
    • 0
この回答へのお礼

本当に素人で申し訳ございません、「全角ひらがな・漢字を使いたい」の間違いでした

何卒よろしくお願い致します。

お礼日時:2012/02/10 09:56

UTF-8に「半角ひらがな」は存在しないはずですが、半角ひらがながある文字コードって何ですか? それとも、半角カタカナの書き間違い

    • good
    • 0
この回答へのお礼

本当に素人で申し訳ございません、「全角ひらがな・漢字を使いたい」の間違いでした

何卒よろしくお願い致します。

お礼日時:2012/02/10 10:01

半角ひらがなというのは一般に使用されている文字コードでは存在しませんが。


いわゆる半角カナの間違いでしょうか?
    • good
    • 0
この回答へのお礼

本当に素人で申し訳ございません、「全角ひらがな・漢字を使いたい」の間違いでした

何卒よろしくお願い致します。

お礼日時:2012/02/10 10:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!