WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:正規表現で変数の組み合わせは?

0:[投稿] あやの [2002/08/23 12:01 ][環境:WIN+IE UNIX系+Perl]

正規表現のマッチング・置換などで、例えば
----------------------------
$hoge = "hogefoohoge";
$foo = "foo";

$hoge =~ s/ge$foo(.+?)/$1/gi;
print "$hoge\n";
----------------------------
実行結果
hohoge
----------------------------
などとしたいのですが、正規表現はどのように書けばいいのでしょう?
この書き方ではマッチしないようです。
よろしくおねがいします。


1:[回答] しなのむし [2002/08/23 13:27 ]

$hoge = "hogefoohoge";
$foo = "foo";

$hoge =~ s/^(.*)ge$foo(.*)$/$1$2/;
print "$hoge\n";

とりあえず
hohoge
になります。


2:[回答] しなのむし [2002/08/23 14:05 ]

単に

$hoge = "hogefoohoge";
$foo = "foo";

$hoge =~ s/ge$foo//gi;
print "$hoge\n";


3:[質問] あやの [2002/08/23 18:21 ]

回答ありがとうございます。
そうですね。この例だと簡単すぎちゃったみたいです。
本当にしたいことは

$aaa = '<html><body>〜<a href="http://www.aaa.com/hoge.html">xxx</a>〜<h1>http://www.aaa.com/</h1></body></html>';
$bbb = 'http://www.aaa.com/';

$aaa =~ s/<a href="$bbb(hoge.+?)"/<a href="$1"/gi;
print "$aaa\n";

実行結果
<html><body>〜<a href="hoge.html">xxx</a>〜<h1>http://www.aaa.com/</h1></body></html>

というようなことをしたいのですが、どうも上手くいかないのです。
どういう正規表現を書けばいいのでしょう??


4:[回答] しなのむし [2002/08/23 18:47 ]

$hoge = '<html><body>〜<a href="http://www.aaa.com/hoge.html">xxx</a>〜<h1>http://www.aaa.com/</h1></body></html>';
$foo =  'http://www.aaa.com/';
$hoge =~ s/href="$foo/href="/;
print "$hoge\n";


5:[完了] あやの [2002/08/23 20:08 ]

あっ そうですよね。
たびたびありがとうございました^^


6:[完了] ふじ [URL] [2002/08/23 20:43 ]

>>4
> $hoge =~ s/href="$foo/href="/;
$hoge =~ s/\Qhref="$foo\E/href="/;
のほうが良いのでは。

$foo に正規表現のメタ文字が入っていると解釈されてしまって、たとえば

$hoge =  '<html><body>〜<a href="http://wwwxaaaxcom/hoge.html">xxx</a>

の場合、http://wwwxaaaxcom/ が置換されてしまいますので。


7:[回答] しなのむし [2002/08/23 23:15 ]

>>6
あ、そうですね。
すみません。


8:[完了] しなのむし [2002/08/23 23:15 ]

 

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World