• ベストアンサー

文字列の置き換え

leaz024の回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

言語がPerlならば、次のようにすればOKです。 $hiduke =~ s!(\d+)/(\d+)!($1+0).'月'.($2+0).'日'!e; 置換演算子「s」を使い、/ 前後の数字を拾って加工しています。 パターンマッチについて勉強されると良いでしょう。

hana3090
質問者

補足

有難う御座います、置き換えができました、 参考書を調べたのですが判らないところが二箇所あります、 1、置換演算子が s///e;でなく s!!!e;になつている。 2、($1+0) の +0 の意味。 以上宜しくお願いします。

関連するQ&A

  • 文字列連結を行いたい

    以下のようなテーブル「TABLE_A」があります。 何とかSQLで抽出結果のようにしたいのですが、 方法が思いつきません。 【TABLE_A】  CODE | HIDUKE  -----|------------  1 | 2005/06/01  1 | 2005/06/02  1 | 2005/06/03  2 | 2005/06/01  2 | 2005/06/03 【抽出結果】  CODE | rst  ---------------------------------------------  1  | 2005/06/01 2005/06/02 2005/06/03  2 | 2005/06/01 2005/06/03  (列「CODE」単位に列「HIDUKE」を文字列連結を行う) どなたかご教授ください。 よろしくお願いいたします。

  • cshの文字列置換

    ヤマトです。 cshでファイル文字列を置換したいのですが、分かりません。 環境はRed Had Linux7.2です。 hoge1.txt の中の 'HIDUKE' という文字列を今日の日付に置換し、 hoge2.txt に出力するようなシェルを作りましたが、正常に動作しません。 ====hoge1.txt(置換前)==== 今日はHIDUKEです。 ====hoge1.txt(置換前)==== 今日は030814です。 ====SAMPLE.sh(一部抜粋)==== set TODAY = `date +"%y%m%d"` sed 's/HIDUKE/$TODAY/g' < hoge1.txt > hoge2.txt 以上のようなシェルを作りました。 結果として、hoge2.txtには出力されるのですが、 「今日は$TODAYです」 となってしまいます。 変数の値を置換するにはどのようにしたら良いのでしょうか? 教えて頂けると有り難く思います。宜しくお願いします。

  • 文字列の置き換え

    こんばんは。 VB6を使用しています。 mystring1 = "abcdefghij" mystring2 = "1234567890" という2つの文字列があります。 この文字列の一部(mystring1)をmystring2の一部で 置き換えたいのですが どのようにプログラムを組んだらいいのでしょうか? 例: c1 = Mid(mystring1, 5, 3)(="efg")を c2 = Mid(mystring2, 1, 3) (="123")で置き換えて mystring1 = "abcd123hij" と置き換えを行うことをしたい。 とても初歩的な質問ですがよろしくお願いします。

  • 文字列の置き換え

    INPUT TEXTの文字をボタンが押されたときに、 別の文字列に置き換えたいんですが、できますか?

    • ベストアンサー
    • HTML
  • 文字列の置き換えについて

    下記のようなテキストファイルを読み込みます。 【お名前】 {@name} 【フリガナ】 {@kana} 【年齢】 {@age} そしてphpでこのようにしました。 $test = array( 'name' => '名前太郎', 'kana' => 'ナマエタロウ', ); $file = 'body.txt'; $body = file_get_contents($file); foreach ($test as $key => $val) { if ( is_array( $val ) ) { foreach ( $val as $val2 ) { $body = preg_replace( "/{@$key}/u", implode(',', $val), $body ); } } else { $body = preg_replace( "/{@$key}/u", $val, $body ); } } echo $body; 結果は、@nameと@kanaは配列にある通りの文字列に変わりますが@ageは そのまま表示されてしまいます。 $testの配列で該当するパターンがない場合には@hogeの値を空白にしたいのですが どうすればいいでしょうか? foreachを$testで行っているのでループ内ではできないような気がしています。 いい方法があれば教えてください!

    • ベストアンサー
    • PHP
  • 文字列の置き換え

    はじめまして。正規表現とPHPで下記のような置き換えをしたいのですが、 どうしたら良いのでしょうか。 <a href="http://www.homepage.com/index.php?no=***">***</a> ↓置き換え <a href="javascript:Open('http://www.homepage.com/index.php?no=***')">***</a> ※***、***は毎回違うものが入りますが、その他の部分は全く同じです。 ※***は、半角英数字・「-」で構成されています。 文字数は色々です。 ※***は、かな・漢字などさまざまで、文字数も決まっていません。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • Perl文字列置き換えについて

    今日は、PerlとCGIについて、お聞きしたいことがあります。 ~s///;で、文字列の置き換えが出来ますよね? 実行しても、変な数字しか出てこないのです。^^; つまずいてしまいました。 以下、コードです。(プロバイダはぷららです) 実行URL http://www9.plala.or.jp/mura001/form2.html =============================================== #!/usr/local/bin/perl -w require "jcode.pl"; require "cgi-lib.pl"; $host=$ENV{'REMOTE_HOST'}; #IP取得 $addr=$ENV{'REMOTE_ADDR'}; $bo=$ENV{'HTTP_UER_AGENT'}; $http=$ENV{'HTTP_HOST'}; #アクセス元URL $access=$ENV{'HTTP_REFERER'}; &ReadParse; #秒、分、時、日、年、月、曜日 ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime; $mon++; $year += 1900; #曜日を日本語化 @week=('日','月','火','水','木','金','土'); $wday=$week[$wday]; #<input type>のnameを読み込む。 $name = $in{'han'}; $text = $in{'text'}; #日本語レコード &jcode'convert(*name,'euc'); &jcode'convert(*text,'euc'); #文字列置換 $name = ~s/</555/; #改行二つ書かないといけないみたい。 print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<title>テスト</title>\n"; print "</head>\n"; print "<body>\n"; print "テストです。<br>\n\n"; if($in{'han'} eq ''){ print "何も入力されていません。<br><br>\n"; exit(); } print "貴方が入力した名前は $name ですね。<br><br>\n\n"; print "$text<br><br>\n\n"; print $ENV{'PATH'},"<br><br>\n\n"; &file2(); print "書き込みリスト<br><br>\n\n"; &file(); print "</body>\n"; print "</html>\n"; sub file{ open(IN,"test.txt"); while(<IN>){ print; } close(IN); } sub file2{ open(IN,">>test.txt"); print IN "<hr>訪問者:$name $year年$mon月$mday日($wday)$hour:$min:$sec<br><br>\n\n"; print IN $text,"<br><br>"; print IN "IPアドレス:$addr<br><br>\n\n"; print IN "アクセス元:<a href=\"$access\">$access</a><br><br><hr>\n\n"; close(IN); } ========================== $name = ~s/</555/; が、 4294967295 にどうしてもなります。^^; (置き換え後の文字列を他のに変更しても必ず、 4294967295 になります!) 分かる方、いらっしゃいますか? あと、日本語の変換が出来ません。(汗) それと、ぷららのサーバがかなり重たいのですが、どうすれば宜しいでしょうか? ご迷惑をおかけいたしますが、どうか、宜しくお願いいたします。

  • 文字の置き換え

    種類 品名 仕入れ先 パソコン パソコン01 パソコン屋 パソコン パソコン02 パソコン屋 パソコン パソコン03 家電屋 パソコン パソコン04 パソコン屋 パソコン パソコン05 家電屋 というような表があります。 で品名であるパソコン01~05を PC01~05に文字を置き換えたいのですが、種類 仕入れ先の「パソコン」がPCになってしまいます。 特定の列のみの該当するセルのみ置き換えるようなことはできないのでしょうか?  考えた方法としては品名の列を別のシートへコピーでそのシートで置き換えて、そのまま元のシートへコピペ・・・。それ以外ではありませんか・・・。 ※実際はデータが多いので、「次を検索」「置換」、「次を検索」「置換」・・・・と繰り返す方法はできたら避けたいです。 ※シート見出しには2006年1月、2006年2月・・・・と(シート見出しの)数が多いので私が考えた方法は無理があります。(面倒ですw) ※各シート見出しの表の形といいますか仕様(?)は同じです。 エクセルのバージョンは2003です。 以上よろしくお願いします。

  • JavaScriptで文字列の置き換え

    <span class="ranking"> <span>通常価格</span>:0 円 </span> 上記のようなHTMLの "<span>通常価格</span>:0 円" の部分を javascriptのreplaceメソッドで書き換えたいのですが 正規表現が分からず困っております。 どうかご教示下さい。

  • VB(2008)で文字列の置き換え

    Dim a As String Dim b As String a = TextBox1.Text b = a.Replace("hogehoge", "fuga") b = a.Replace("piyo","xyzzy") b = a.Replace("foo", "bar") Textbox2.Text= b のようにしているのですが、置き換えることができません。 初歩的な内容ですがどなたかよろしくお願いします。