文字列変換の一括処理方法について

このQ&Aのポイント
  • 一括文字列変換による複数の変数の値の置換方法を教えてください。
  • 特定の変数の値を変換せずに一括置換を行う方法を教えてください。
  • 一括文字列変換を使って変換したい文字列が多い場合、一括で処理する方法を教えてください。
回答を見る
  • ベストアンサー

一括文字列変換

$FORM{'color'} $FORM{'background'} $FORM{'name'} $FORM{'title'} $FORM{'comment'} 上記に文字列(例)「a」が入力された場合に「b」に変換したいのですが、一括で変換する場合は $val =~ s/a/b/g; とすればできます。 ただ、$FORM{'comment'}と$FORM{'title'}には変換を反映させたくないのですが、この場合はどのようにすればいいのでしょうか? $FORM{'color'} =~ s/a/b/g; $FORM{'background'} =~ s/a/b/g; $FORM{'name'} =~ s/a/b/g; と一つ一つ設定するしかないのでしょうか?変換したい文字列が莫大にありますので、出来れば一括でできれば助かります。よろしくお願いいたします。

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

変換するものとしないものの区別がよくわかりませんが, 例えば my @convert_keys = qw(color background name); for my $key (@convert_keys) { $FORM{$key} =~ s/a/b/g; } なんてのではダメ?

cocolink
質問者

お礼

有難うございます。おかげ様でまとめて変換することができました。

関連するQ&A

  • 文字列変換

    $word = 'abc'; &word_check($FORM{'comment'}); sub word_check { local($wd) = @_; local($flag); foreach ( split(/,+/, $word) ) { if (index($wd,$_) >= 0) { $flag=1; last; } } if ($flag) { $FORM{'comment'} =~ s/($word)/【文字変換$1】/g; } } $FORM{'comment'}に$wordの文字列が含まれていた場合には対象文字列を変換しようと考えています。 上記のように$wordにabcのみでしたらうまく変換されるのですが、 $word = 'abc,123';というように複数指定した場合にうまくいきません。 繰り返す処理を使うのだと思いますが、あまり知識がないため、うまく出来ません。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • DOS:テキスト内の特定行の次行に文字列を追加

    DOSコマンドプログラムでテキストファイル内の特定文字列を含む行の次の行に、指定した文字列を含む行を挿入する方法 Windows7の DOSコマンドプログラムで、下記の"input1.txt" を"output1.txt"に変換したいと思っています。 "input1.txt"内で"Name:"を含む文字列があれば、その行の次の行に、"A1:10.2"という行を挿入するDOSコマンドプログラムをご教授いただけないでしょうか。見つけた文字列行の次の行に挿入する方法というのが、できなくて困っています。 ---input1.txt------ Name: Tanaka B1: H2 C1: 2 Comment: ABC# 61, Seq# M34 Num H: 3 12 37.97 13 105.90 14 203.82 Name: Suzuki B1: H2 C1: 2 Comment: ABC# 58, Seq# M39 Num H: 2 11 37.97 12 105.90 Name: Yamada B1: H2 C1: 2 Comment: ABC# 93, Seq# M397 Num H: 4 2 2.00 12 4.00 13 9.99 14 29.97 --------------- ---output1.txt----- Name: Tanaka A1:10.2 B1: H2 C1: 2 Comment: ABC# 61, Seq# M34 Num H: 3 12 37.97 13 105.90 14 203.82 Name: Suzuki A1:10.2 B1: H2 C1: 2 Comment: ABC# 58, Seq# M39 Num H: 2 11 37.97 12 105.90 Name: Yamada A1:10.2 B1: H2 C1: 2 Comment: ABC# 93, Seq# M397 Num H: 4 2 2.00 12 4.00 13 9.99 14 29.97 -----------------

  • エクセルで、文字列を一括変換したものを表示したい

    どなたか教えてください(涙) エクセルで、特定の文字列を含む文字列を一括変換したもの を別のセルに表示したいんです。 今までは、検索→置換 とか フィルタをかけてコピペ を繰り返して処理していたのですが、処理量が増えてきたもので、マクロで処理できるようにしたくて…。 マクロの自動登録でなんとかできるかと格闘したり、過去の質問も読んでみたのですが、解決できまでんでした。 やりたいのは、下記のようなことです。 A列に 青菜豚肉ひよこ豆人参玉葱中華だし などなど料理の素材が列記されています。 そこに『豚肉』を含んでいれば、B列の同じ行に『1』と表示したい。 そこに『バター』か『牛乳』のいずれかを含んでいれば、B列の同じ行に『2』と表示したい。 そこに『塩』と『醤油』両方を含んでいれば、B列の同じ行に『3』と表示したい。 こんな感じで、A列の文字列に含まれる内容によって、B列に表示させる番号を変えたいんです。 拙い説明でスミマセン(汗) 良いアイデアないでしょうか? どなたかご教授ください。よろしくお願いします。

  • ワード2003で、ある文字を一括変換できますか?

    ワード2003で、ある文字を一括変換できますか? 例えば、 「Aさんは、Aさんの友達とAさんの親戚の家に行きました」 という文で、その中の「Aさん」は間違いなので、そこを以下のように「Bさん」に書き替えたいのですが、 「Bさんは、Bさんの友達とBさんの親戚の家に行きました」 実際の文は非常に長い(多い)ので、一括で書き替えることができれば助かるのですが、 そのような機能はあるのでしょうか?

  • 複数行の文字列を一括してURLエンコードするには?

    こんにちは。 例) エンコード前 今日の天気 エンコード後(ECU-JP) %ba%a3%c6%fc%a4%ce%c5%b7%b5%a4 の様なURLにできる文字列に変換したいのですが、元となるデータが多数ありまして手作業で行うのが大変です。 EXCELで一括変換する方法や、その他一括変換できるようなソフトやサービスをご存じでしたら是非教えてください。

  • 正規表現での文字列変換について

    アルファベットの変換のときに、 $a = 'abcdefgABCDEFG'; $a =~ s/c/X/g; $a =~ s/C/X/g; という感じのことを良くやるのですが、アルファベットの大文字と小文字を一緒に変換することは出来るのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • 日付、文字列変換に関して

    日付、文字列変換に関して 文字列の日付に対し、プラス1ヶ月した後、また文字列に戻すような 仕掛けを考えています。 そこで、以下のような記述をしましたが、どうも最後の文字列への変換が うまくいきません。 何が原因でしょうか。。。 DateTime A_time; DateTime B_time; string AFormat; AFormat = "yyyyMM"; A_time = DateTime.ParseExact("201012", AFormat, null); B_time = A_time.AddMonths(1); string C_time = B_time.ToString("YYYY/MM"); 初歩的な内容で申し訳ありませんが、よろしくお願いします。

  • Word:文字列一括選択→書式変換

    Word 2003/2007を併用しています。 Word文書中の(1995年)や(略)など、括弧に囲まれた文字列を一括して選択し、選択した文字列に対しフォントを落とすなどの書式変換を行いたいと思っています。しかし、特に前者の、「特定条件の文字列を一括選択」をどのようにすればよいのかわからなくて困っています。よい方法をご存じの方がいらっしゃいましたら、お教えいただければ幸いです。 お手数をおかけいたしますが、よろしくお願い申し上げます。

  • JSPでUTF-8の文字列表示

    JSPでUTF-8の文字列を表示することができず困っています。 HTMLの<form>でPOSTした任意の文字列をjspでUTF-8の文字列に変えたいのですが、 いろいろ試したのですがどうもうまくできません。 jspは全然くわしくないので困ってます。 以下のようなHTMLで <body> <h1 style="background:#cccccc;width:60%">文字コード変換したい文字列を入力</h1> <br> *UTF-8に変換します。 <form method="POST" action="moji2.jsp"> <textarea name="enco" cols="60" rows="7"></textarea> <br /> <input type="submit" value="変換" /> </form> </body> 以下のようなJSPファイルで <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="java.net.*" %> <% request.setCharacterEncoding("Windows-31J"); %> <% String en = request.getParameter("enco"); String ren = URLEncoder.encode(en); %> <%=ren %> となまぁただUTF-8の文字列を表示をする勉強をしていたのですがいろいろかえてもShift_JISでエンコードされた文字列が表示されます。 例)あいうえお で入力すると %82%A0%82%A2%82%A4%82%A6%82%A8 やりたいことはこのサイトと同じことなんです http://www.tagindex.com/tool/url.html 例)あいうえお %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a 最終目標は任意の文字列をUTF-8に変換して、ヤフーの形態素解析をすることです。初心者ですがよろしくお願いします。。

    • ベストアンサー
    • Java
  • 一括文字列置き換えツールで画像も変換してしまい困っています

    一括文字列置き換えツール Version1.03 http://hp.vector.co.jp/authors/VA007941/tool/index17.html でHPのアドレスを変えたので一括変換をしたところ画像も変換されてしまい、画像やファイルがこわれて表示できなくなったり使い物にならなくなってしまいました。 これを元に復元したいのですがどうしたらよいでしょうか? 回答おねがいします(o*。_。)o

専門家に質問してみよう