• ベストアンサー

Dreamweaverの正規表現の置換で$1の後に数字を記述するには?

コードに a1 b1 と書かれているところを a2 b2 に置換する場合 検索:([ab])\d 置換:$12 と書いても$1と2ではなく$12と認識されてしまうため うまく置換することが出来ません。 どうすれば思い通りに置換することが出来るのでしょうか? 使用OS:Windows XP 使用ソフト:Dreamweaver MX 2004 ~ CS3 ご存知の方がおられましたらご回答をよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • naka_jan
  • ベストアンサー率100% (1/1)
回答No.2

Dreamweaverを使った事がないので、的外れかもしれませんが、最初に 検索:([ab])\d 置換:$1_2 としてa1→a_2のように間に何かを挟んだ形にしてその後 検索:_ 置換:(何もなし) で間に挟んだものを消してはいかがでしょう? ”_”の部分が 何かと重複するようなら別のものに置き換えてもらって構いません。

nana_watuki
質問者

お礼

なるほど、確かにこの方法だと2回置換する必要がありますが、a1 b1 を a2 b2 に置換することが出来ますね。 そもそも正規表現では$1の後に数字が続くと1回で置換することが出来ないのだろうか? ご回答いただきどうもありがとうございました。

その他の回答 (2)

  • naka_jan
  • ベストアンサー率100% (1/1)
回答No.3

この場合、正規表現の限界、というわけではないでしょうね。 もしもDreamweaverが正規表現の「名前つき捕獲」に対応していれば 可能だと思います。 実際、サクラエディタ1.6.2+鬼車5.9.0の場合 置換前:(?<alpha>[ab])\d 置換後:\k<alpha>2 でa1→a2への一発置換が可能です。 また、スクリプト言語であれば [ab]とは別に後ろの1をグループ化し、$2を数字として扱って 1加算してあげれば行けると思います。

参考URL:
http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt
nana_watuki
質問者

お礼

Dreamweaverの正規表現は「名前つき捕獲」に対応していないようです。 いろいろ調べてみましたがDreamweaverでは簡単な正規表現しか使用できないため 今回のようなケースは対応できないようです。 この場合、「正規表現の限界」というより「Dreamweaverの限界」といったところでしょうか。 AdobeがDreamweaverの正規表現をサクラエディタや秀丸並に 使用できるようにしてくれるまで待つしかないようです。 ご回答いただきどうもありがとうございました。

  • m_flower
  • ベストアンサー率59% (45/76)
回答No.1

まったく的外れかも知れませんが、単純にa1はa2に、b1はb2で個別に置換するのではダメなのですか?

nana_watuki
質問者

補足

正規表現で一発で置換できるようにしたいのです。 例えばa1 b1のように数が少なければ2回の置換で済みますが a1 b1 c1 d1 e1 f1 g1 h1 i1 j1 k1 l1 m1 n1 のようにたくさんあると これを個別に置換するのは手間がかかるので。

関連するQ&A