質問掲示板

CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。

新規発言一覧最新記事過去一覧 | 検索HOME

スレッド

└◇1030:
マッチング置換の件 [うしわか] 03/22 10:03

 └◇1031:Re:マッチング置換の件 [moon] 03/22
  └◇1033:Re[2]:マッチング置換の件 [うしわか] 03/22
   └◇1036:Re[3]:マッチング置換の件 [moon] 03/22
    └◇1049:Re[4]:マッチング置換の件 [うしわか] 03/23
     └◇1050:Re[5]:マッチング置換の件 [moon] 03/23
      └◇1052:Re[6]:マッチング置換の件 [うしわか] 03/24 <


1030● マッチング置換の件[ うしわか ] 2008 03/22 10:03
いろいろ調べてみたのですがどうしてもわからないので
質問させていただきます。
マッチング置換いついてです。
$coment="hogeではれほれなhogeみたいなhogeたちよ
今日もhogeしよう。";
&change($coment);

sub change{
$_[0]=~ s/hoge/harehore/g;
}
の場合

$coment="harehoreではれほれなharehoreみたいなharehoreたちよ
今日もharehoreしよう。";

となりますが、これを
$coment="harehore01ではれほれなharehore02みたいなharehore03たちよ
今日もharehore04しよう。";

というように連番をつけられないでしょうか。
マッチング数がわからないので(^_^;)
スレッド一覧


1031● Re:マッチング置換の件[ moon ] 2008 03/22 10:32
こんな感じでいかがでしょう。

$coment="hogeではれほれなhogeみたいなhogeたちよ
今日もhogeしよう。";

$i = '01';
while (&change($coment)) {
    $i = sprintf("%02d",$i+1);
}

sub change{
    $_[0]=~ s/hoge/harehore$i/;
}
スレッド一覧


1033● Re[2]:マッチング置換の件[ うしわか ] 2008 03/22 16:29
> $coment="hogeではれほれなhogeみたいなhogeたちよ
> 今日もhogeしよう。";
>
> $i = '01';
> while (&change($coment)) {
>     $i = sprintf("%02d",$i+1);
> }
>
> sub change{
>     $_[0]=~ s/hoge/harehore$i/;
> }
>
ありがとうございました。ちなみに

&change($coment);

sub change{
my $i = '01';
while ($_[0]) {
$i = sprintf("%02d",$i+1);
$_[0]=~ s/hoge/harehore$i/;
}

ではだめでしょうか。
    
スレッド一覧


1036● Re[3]:マッチング置換の件[ moon ] 2008 03/22 23:48
> &change($coment);
>
> sub change{
> my $i = '01';
> while ($_[0]) {
> $i = sprintf("%02d",$i+1);
> $_[0]=~ s/hoge/harehore$i/;
> }
>
> ではだめでしょうか。

試してないけど、それだと無限ループになりませんか?
スレッド一覧


1049● Re[4]:マッチング置換の件[ うしわか ] 2008 03/23 22:02
確かにエラーになりました。なぜでしょう?無限ループ?


話は変わりますがperlの開発環境、便利ツールなどおすすめがありましたら
教えてください。
現在はAN HTTPDとActivePerl 5.6.1で試験環境を作っています。結構、めちゃくちゃやるのでよくAN HTTPDが死んでしまい苦慮しています。エディタもterapadと秀丸を使っていますがおすすめな環境
は?というかmoonさんはどんな環境でしょうか教えてください。
スレッド一覧


1050● Re[5]:マッチング置換の件[ moon ] 2008 03/23 22:17
> sub change{
> my $i = '01';
> while ($_[0]) {
> $i = sprintf("%02d",$i+1);
> $_[0]=~ s/hoge/harehore$i/;
> }

あ、単にsubの括弧が閉じられてないだけ。


> 話は変わりますがperlの開発環境、便利ツールなどおすすめがありましたら
> 教えてください。

私はApache2とActivePerl(たぶん5.8系)だと思います。特に気にしてません。
あと、sendmailテストしたい場合はsendまねーる(http://www.vector.co.jp/soft/win95/net/se266727.html)とか、
mailサーバー用にpmail(http://akisoftware.jp/index_frame.html)をつかったりとか。
エディタはterapadしか使ってないです。
スレッド一覧


1052● Re[6]:マッチング置換の件[ うしわか ] 2008 03/24 16:57
> あ、単にsubの括弧が閉じられてないだけ。
(^_^;)
スレッド一覧

CGIROOM