人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlについて。

置換やマッチング等で、正規表現を使わないということは出来るのでしょうか。出来たら方法を教えてください。


<例>
文字列A→
http://www.yahoo.co.jp

文字列B→
http://www.google.co.jp

文字列Aを文字列Bに置換する。その際に文字列Aを「http://www\.yahoo\.co\.jp」などとエスケープしたりせず、
そのまま使いたい。

●質問者: tetlis
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● cubick
●42ポイント ベストアンサー

テキスト修飾子の「\Q」および「\E」を使うのはいかがでしょうか。

「\Q」は「\E」までの文字列で、正規表現に使われる特殊文字を文字列とみなすオプションです。

$str =~ s/\Qwww.yahoo.co.jp\E/www.google.co.jp/;

http://rfs.jp/sb/perl/02/09.html


2 ● km1981
●25ポイント

区切り文字にパス名として使わないアスタリスクを使って

式の評価をしないといいと思います


サンプル・スクリプトです

$str = 'http://www.yahoo.co.jp/index.html’;

$str =~ s*yahoo.co.jp/index.html*google.or.jp/home.html*;

print $str;


3 ● うぃんど
●33ポイント

(例1) 通常記法を使う

$str =~ s!\Qhttp://www.yahoo.co.jp!http://www.google.co.jp!;

/ 以外の文字も使えますし、今回のように単純な置換であれば¥Eは省けます

(例2)汎用記法を使う

$str =~ s{\Qhttp://www.yahoo.co.jp}{http://www.google.co.jp};
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ