人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで
,,(半角カンマ2個続き)

,’’,(シングルクォート囲みをカンマで挟む)
の置換をしたい場合の記述はどう書けば良いですか?
tr/,,/,’’,/;
tr/,,/,¥’¥’,/;
tr/¥,¥,/¥,¥’¥’¥,/;
などを試しましたが、いずれも置換されませんでした。

●質問者: P-mako
●カテゴリ:ウェブ制作
✍キーワード:Perl クォート シングル 記述
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● aki73ix
●5ポイント

http://nifberry.727.net/test/hatena165.cgi

$a=$a2="abcde,,tes,,t";

$a2=~s/,,/,’’,/g;

print "original=".$a."<BR>";

print "convert=".$a2."<BR>";


trではなくs を使ってみてはいかがでしょう


trは正規表現のマッチ、sは直接置換だったと思います

http://www.tohoho-web.com/lng/200001/00010525.htm

[perl] 置換で、tr と s に関する質問

◎質問者からの返答

一部置換できました。

たとえば、

,,,

,’’,’’,

のように置換したい場合に有効な記述はありませんか?

※実際には、カンマの連続はもっとありますが、すべてNULLを’’にしたいというイメージです。


2 ● ootatmt
●5ポイント

tr ではなく、s です。


s/,,/,’’,/

◎質問者からの返答

ありがとうございます。

1番目の回答者の方にも同じ指摘をいただきました。


3 ● dasm
●45ポイント

http://members.at.infoseek.co.jp/pikaia/perl/match.html

PaPaPaPerl!

s/,(?=,)/,’’/g


がしたいということですか?

◎質問者からの返答

ご回答ありがとうございます。まさにそのとおりです。上手くできました。ありがとうございます。

以降、ご回答いただいているので、一応オープンします。


4 ● ootatmt
●1ポイント

たぶんCSVデータの取り扱いの話だと思いますが、


http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values

一度、CSVの要素を取り出して、


値が null のものを、’’ に置換し、


http://www.din.or.jp/~ohzaki/perl.htm#CSVfromValues

再度、CSVに変換してやるのが確実でいいと思いますよ。

◎質問者からの返答

置換の記述の問題だけだと思っている(実際そうでした)ので、この手の回答は不要です。


5 ● tebukuro
●43ポイント

s/,(?=,)/,’’/g でどうでしょうか。

古いバージョンのperlだと動かないかもしれません。

またこういうケースでは、必ずしも置換ではなく

split等を組み合わせるとよいかもしれません。

◎質問者からの返答

未オープンだった3つ目の回答と同じですね。そのとおりです。ありがとうございました。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ