- ベストアンサー
正規表現で置換したい
- ブログシステムの記事中にある内部リンクの置換方法について質問です。現在、post-001.htmlのような形式でリンクがありますが、正規表現を使用してpost_001のように置換したいです。
- WordPressのプラグイン「Search Regex」を使用して、ブログの記事中にある内部リンクの置換を行いたいです。具体的には、post-001.htmlのような形式をpost_001に置換したいです。
- WordPressのブログシステムで、記事中にある内部リンクの置換について質問です。正規表現を使用して、post-001.htmlのようなリンクをpost_001に置換する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
なるほど、Search pattern にはデリミタ(区切り文字)も含めるようですね。 となると、下記の様になるのかも。 /post-(\d+)\.html/ /post-([0-9]+).html/ なお、チェックボックスは下記の様な意味だと思われます。 case-insensitive : 大文字小文字を区別するか否か multi-line : ^と$を改行の前後にマッチさせるようにするか否か dot-all : .(ピリオド)を改行にマッチさせるようにするか否か
その他の回答 (2)
- root139
- ベストアンサー率60% (488/809)
補足ありがとうございます。 逆スラッシュのままでも良いはずです。キーボードから入力しても逆スラッシュが表示されるのですよね?(バックスペースキーの横のキーで) それと、置換実行時に「Regex」にチェックが入っていますか? どうしてもうまくいかない場合は Search pattern を「post-([0-9]+).html」としたらどうですか? (少し条件が緩くなってしまいますが、おそらく問題は無いでしょう) ちなみに、エスケープ文字が円マークが表示されるのは日本のみでの歴史的な事情ですので、正規表現での本来の姿は逆スラッシュなのです。
お礼
結果です。 すみません、ご提示頂いた 「post-(\d+)\.html」 「post-([0-9]+).html」 ともに、サーチできませんでした。 こういう表示が出ました。 「Invalid regular expression: Delimiter must not be alphanumeric or backslash」 またこういうチェックボックスが出ました。 case-insensitive □ multi-line □ dot-all □ remember to surround your regex with a delimiter! ありがとうございました。
補足
すみません。ご指摘のとおり、肝心の「REGEX」に チェックが入っていませんでした。 >円マークが表示されるのは日本のみでの歴史的な事情 勉強になりました。 いま、時間がなく、落ち着いてやりたいので あらためて時間をとって試みて、 その結果を下のお礼の欄でお伝えします。 まずは、お礼したく存じます ありがとうございました。
- root139
- ベストアンサー率60% (488/809)
perl の正規表現なら下記の様になるかと。 s/post-(\d+)\.html/post_$1/g WordPress は使った事はありませんので Search Regex については推測しか出来ませんが、おそらく Search pattern は「post-(\d+)\.html」で、Replace pattern は「post_$1」か「post_\1/」のどちらかで良いでしょう。
お礼
上の補足分かりにくい書き方ですみません。 >「 Search pattern は「post-(\d+)\.html」」 と書かれていますが、「\」はおそらく半角の¥のことだと思うのですが すでに、私のPCでは、このOKWAVE上で逆スラッシュとなっています。 そして、Search Regexにこの文字列をペーストしたら やはり逆スラッシュとなっていて、サーチしたら 「ヒットしませんでした」という結果でした。
補足
ありがとうございます。 「 Search pattern は「post-(\d+)\.html」の「\」は、 WEB上では半角スラッシュの逆向きで表示されていますが、 テキストエディタにペーストして分かりましたが 「半角の¥」ですよね。 この半角の¥が必要だと思うのですが、Search Regexに入力すると ここでも半角の¥ではなく逆スラッシュになってしまいます。 半角の¥は、htmlでは「¥」とするとのことですが、 これを使ってもいいのでしょうか。 「post-(¥d+)¥.html」 ためしにやってみてもいいのですが、 もしかしして関係ないところまで拾って取り返しのつかないことに なるかもしれないので試すのを躊躇しております。
お礼
ありがとうございます。 置換前 /post-(\d+)\.html/ 置換後 post_$1 で出来ました。 大変助かりました。 そして勉強になりました。 ありがとうございました。
補足
返信が遅れてしまいすみません。 今回のことを試みる前に別の問題が発生し、それをクリアしなければ この置換が行えなくなりました。 今の問題をクリアし、 置換を行ってみての結果は、下のお礼欄にてご報告させていただきます。 重ねてのアドバイスをいただきましてありがとうございます。