• ベストアンサー

配列の文字置換え

push(@xx1, $xx); push(@xx2, $yy); push(@xx3, $zz); $yyに含まれている「<」と「>」をそれぞれ普通の <、>に変換したいのですがどのように書けばいいですか? 教えてください。

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

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

  • ベストアンサー
  • tthe_mine
  • ベストアンサー率46% (19/41)
回答No.1

$yy =~ s/&lt;/</g; $yy =~ s/&gt;/>/g; で $yy 内に含まれている文字列の置換が出来ますよ。 配列とは関係無いですが、聞きたいことはこれであってますか?

gooID3
質問者

お礼

ばっちりできました。 ありがとうございました

関連するQ&A

  • 連想配列の要素を追加

    表示結果が XX YY ZZ になるようにしてください。 $a = array(); $a['yy'] = 'YY'; $a['zz'] = 'ZZ'; //ここにコードを書く// foreach($a as &k){ echo $k . '<br>'; }

    • 締切済み
    • PHP
  • A列にある文字データで△△を含むセルの値をB列に□□にして置き換えしたい

    A列に文字データが100行まであります。    A           B    1 ミカンを食べた     ZZ 2 イチゴを食べた     XX 3 西瓜を食べた      YY 4 ミカンを捨てた     ZZ 5 西瓜を拾った      YY 6 ミカンを無くした    ZZ 7 西瓜を貰った      YY 8 イチゴをあげた     XX それを表のようにB列(任意の列)に置き換えたいです。 イチゴを含むセルはB列にXXをミカンはZZみたいな感じです。 A列のセルには同じ文字列は(今のところ)含みません。 文字の一部を置き換えて変換し、それを繰り返すところまではできましたが、上記のことがができません。 VBAを使って一発で変換したいのですが教えていただけますでしょうか?

  • ACCESS もしくはEXCEL条件によってコピー

    ACCESSもしくはEXCELで 口数の数量と同じようにそのデータ(行)をコピーしたいですが、お願い致します。 例: 住所   名前   口数 東京   XX XX  2 千葉   YY YY  1 神奈川  ZZ ZZ  3 を下の表ようにしたいです。 住所   名前   口数 東京   XX XX  1 東京   XX XX  1 千葉   YY YY  1 神奈川  ZZ ZZ  1 神奈川  ZZ ZZ  1 神奈川  ZZ ZZ  1 口数と同じようにその行を全部コピーしたですが、 宜しくお願い致します。

  • UNIXコマンドのjoinについて

    -------------- -------------- 1 XX XXX 1 xx xxx 2 YY YYY 2 yy yyy 3 ZZ ZZZ  3 zz zzz ~      ~ -------------- -------------- UNIXコマンドのjoinを用いて上の二つのファイルを結合させ、 ---------------------- 1 XX XXX xx xxx 2 YY YYY yy yyy 3 ZZ ZZZ zz zzz ~ ---------------------- としたかったのですが、一列目の数字が急に変化するとそれ以降の行が出力されなくなります。(例えば、100の次が1000になった時など) どのようしたらこのような事が防げるのでしょうか? もしjoinでは防げないなら、joinのように2つのファイルの1列目の数字が同じだった時に結合して出力してくれるプログラムを書ける方がいたら教えていただきたいです。 perlかC++だと助かります。よろしくお願いします。

  • Excelのマクロで・・・

    こんな表があります。    A  B  C  D  E  F  G 1 XX XX XX 2 YY YY YY 3 ZZ ZZ ZZ ここでA1、B1、C1の変数を読み込み「ある計算」をさせてD1~G1にその答えを書き出させる、A2~C2の変数を読み込み「ある計算」をさせてD2~G2にその答えを書き出させる・・・というのを作りたいのですがデータの読み込みと書き出し方法がわかりません。 どうすればいいのでしょうか?簡単なことなのでしょうがエクセルのヘルプが入っていないので・・・(大学のPCなので自分で入れることも不可能です) (縦は同一の変数で対応しています) 必要ならば補足いたします。

  • なにがおかしいのでしょうか?

    先の質問「プログラムのヒントを下さい」でも扱ったのですが、 apple best apple END apple beer beer END zero child death zero のようなテキストから、ENDとENDの間か、ENDと最初もしくは最後の間の重複した文字列を取り除くスクリプトを書こうと思います。出力例は以下のようになってもらいたいです。 apple best END apple beer END zero child death 自分で頑張って下のコードまで書きましたが動きませんでした。特に、ENDと最初もしくは最後の間 の取り扱いがわかりません。どなたかご教授お願いいたします。 open(IN, "datafile"); @xx = <IN>; @zz = (); foreach $yy (@xx) { if ($yy eq "end"){ @uniq = uniqArray(\@zz); foreach my $value ( @uniq ){ print "$value\n"; } @zz = (); }else{ push(@zz,$yy); } } close(IN); sub uniqArray{ my $array = shift; my %hash = (); foreach my $value ( @$array ){ $hash{$value} = 1; } return( keys %hash ); }

    • ベストアンサー
    • Perl
  • 文字実体参照が勝手に変換されてしまう

    簡単な問合せフォームを作成中に文字実体参照に変換した文字が、元に戻されてしまい困っています。簡単なサンプルを作成してみましたが、以下の様な状態です。 1.入力フォームを持ったHTMLに 「<>と&lt;と&gt;」 と入力し、xxx.cgiに渡します。 2.xxx.cgi内で入力文字列を取得し、文字実体参照に変換後<hidden>で値を保持、再度xxx.cgiに<hidden>の文字列を渡すようにします。この時点で入力値は 「&lt;&gt;と&amp;lt;と&amp;gt;」 となります。 3.再度xxx.cgiが呼ばれると、文字実体参照に変換する処理が行われる為、入力値が 「&amp;lt;&amp;gt;と&amp;amp;lt;と&amp;amp;gt;」 となるはずですが、 「&lt;&gt;と&amp;lt;と&amp;gt;」 となってしまいます(変換処理が行われているはずなのに変換されていない)不思議に思って変換前のCGIの引数を確認してみると、 「<>と&lt;と&gt;」 と文字実体参照が元に戻されてしまっています。 ちなみに文字実体参照の変換処理は$valueに対象の文字が入っているとして以下の方法で変換しています。 ---------- $value =~ s/&/&amp;/g; $value =~ s/"/&quot;/g; $value =~ s/</&lt;/g; $value =~ s/>/&gt;/g; $value =~ s/\n/<BR>/g; ---------- こういった現象についてでも何か分かるようでしたら宜しくお願いします。

    • ベストアンサー
    • Perl
  • このような場合のSQLの記述

    下記のSQLの記述方法について教えてください。 TBL:smp A  B  C ------------ XX あ 5 YY え 3 ZZ お 2 XX え 1 のテーブルで、Aの列でグループ化し、Cの列の最大の行を出力したい。 アウトプットとしては、 A  B  C ------------ XX あ 5 YY え 3 ZZ お 2 にしたいのですが、A、Bでグループ化すると、上記のアウトプットにはならず、 Aだけでグループ化すると、Bの列が表示されない。 どうしたらいいでしょうか?

  • Excelの関数(連立)はいくつまで可能?

    プロ野球の順位表をExcelで作っています。 まず成績表を作り、 そのあとIF関数をつかい自動的に順位がいれかわる方法をとっています。 リーグ毎(6チーム)はうまくなるのですが、 交流戦(12チーム)の順位表IF関数を=IF(xx,xx,IF(yy,yy,IF(zz,zz,… と11連立して作ることになりますが途中でエラーが出ます。 関数(連立)はいくつまで可能ですか?

  • 偏微分の問題?

    x, y, z の時間微分を: dx/dt = f(x,y,z) dy/dt = g(x,y,z) dz/dt = h(x,y,z) とします。この時、 x = f(xx, y, z) ...(1a) yy = f(xx, y, z) ...(1b) zz = f(xx, yy, z) ...(1c) ∂x /∂xx = (∂yy/∂y)(∂zz/∂z) ...(2) (1)かつ(2)を仮定すると  df/dx + dg/dy + dh/dz = 0 を簡単に示すことができるのだそうです。 ・・・なぜでしょうか?

専門家に質問してみよう