正規表現での置換について質問です

このQ&Aのポイント
  • Win版Golive6を使用しています。正規表現については初心者なのですが、検索/置換で、$1がうまく使えず困っています。
  • <span class="price">¥2,100(税込・送料無料)</span>というタグの中から(税込み・送料無料)という表記だけを消したいのです。そこで、自分なりに、色々と試し最終的に以下のような方法に行き着きました。
  • 対象のページは数千ページあり、手作業では不可能です。class="price"以外の場合は置換されると困ります。¥(税込み・送料無料)は全角です。何か間違えているのでしょうか?それともGoliveでは$1が使用できないのでしょうか。
回答を見る
  • ベストアンサー

置換の正規表現

Win版Golive6を使用しています。 正規表現については初心者なのですが、 検索/置換で、$1がうまく使えず困っています。 具体的には <span class="price">¥2,100(税込・送料無料)</span> というタグの中から(税込み・送料無料)という表記だけを 消したいのです。ちなみに数字部分はそれぞれ異なります。 そこで、自分なりに、色々と試し最終的に以下のような 方法に行き着きました。 ▼検索 <span class="price">(.+)(税込み・送料無料)</span> ▼置換 <span class="price">$1</span> これで、検索はうまくいくのですが、$1という記号部分が 希望の数字ではなく記号そのままに表示されてしまいます。 ちなみに、 ・対象のページは数千ページあり、手作業では不可能です。 ・class="price"以外の場合は置換されると困ります。 ・¥(税込み・送料無料)は全角です。 何か間違えているのでしょうか?それともGoliveでは $1が使用できないのでしょうか。できればGoliveだけで できると助かりますが、他のソフトでもかまいません。 どうかよろしくお願いします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

Goliveは使っていませんが、 $1ではなく、\1ではないの?

stain18_8
質問者

お礼

完璧です!一発で解決しました。 本当にありがとうございます。

その他の回答 (2)

  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.3

ちなみに

参考URL:
http://hodade.adam.ne.jp/seiki/page.php?study4
  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.1

▼検索 <span class="price">¥(.+?)(税込み・送料無料)</span> ▼置換 <span class="price">¥$1</span> では?

stain18_8
質問者

補足

すみません、コピペしてみましたが 『標準式内にエラーがあります。』と表示され検索自体ができません。 初歩的ですみませんが、"?"を加える意味とは何なのでしょうか?

関連するQ&A

  • Excelで正規表現やワイルドカードなどを使って置換したいのですが…

    Excelの中で置換をしたいのですが、 例えば以下のように( )かっこでくくられた不規則な数字を検索し、その前後に記号を付加するといった具合です。 Wordだと置換で正規表現が使えますが、Excelではやはりマクロを作らないとだめなのでしょうか?  置換前   あいう(123)かきく(あああ)   さしす(ははは)たち(589)つ    ・      ・    ・      ・  置換後   あいう★(123)★かきく(あああ)   さしす(ははは)たち★(589)★つ    ・      ・    ・      ・

  • CSS:span 改行させるには?

    こんにちは。 以下のようなHTMLがあります。 HTMLは自動生成のため編集不可なのですが、スタイルシートのみ編集可能です。 <span class="price">4,500円&nbsp; </span><span class="price2">税込、送料別</span> 現在はそれぞれ、スタイルシートに フォントカラーサイズ程度が与えられているだけなので 4,500円 税込、送料別 と表示されています。 これを価格のあとで改行させて 4,500円 税込、送料別 と表示にさせることはできないでしょうか。 よろしくお願いいたします。

  • 謎の文字列置換(正規表現)

    漢字かな、アルファベット(全角)、数字(半角)の混在した文章中で、二桁の数字のみ文字の前後に記号(例:♪)を付けたいとします。 正規表現に対応した置換ソフトやテキストエディタで 置換前:\b(\d{2})\b 置換後:♪$1♪ とすると、特定の文字の後ろにある二桁数字のみ検索から漏れて置換されないのですが、どこが間違っているのでしょうか。 <使用したテキストエディタ> k2editor <使用した置換ソフト> Speeeeed <置換から漏れる特定文字> 学、浜、工、田、修など <具体例>置換前 23 学23 23学 2323 浜23浜 <具体例>置換後 ♪23♪ 学23 ♪23♪学 2323 浜23浜

  • 正規表現の書き方教えてください(PHP)

    PHPで、以下の例のように、日付の文字列から年/月/日の数字部分をそれぞれ、<span>で囲みたいです。 正規表現の置き換えで出来ると思うのですが、正規表現が苦手なため苦戦しております。 どなたかアドバイスいただけると助かります。 (例) 2011年5月12日(木)~6月1日(水) ↓ [A] <span class="y">2011</span>年 <span class="m">5</span>月 <span class="d">12</span>日(木)~ <span class="m">6</span>月 <span class="d">1</span>日(水) もしくは [B] <span class="y">2011</span>年 <span class="md">5</span>月 <span class="md">12</span>日(木)~ <span class="md">6</span>月 <span class="md">1</span>日(水) [A]と[B]で、速度がそれほど変わらなければ[A]のようにしたいです。 年と月は入ったり入らなかったりします。 月と日はゼロ埋めなしの1~2桁、年は必ず4桁です。 PHPのバージョンは5.2.5です。

    • ベストアンサー
    • PHP
  • 秀丸の置換で正規表現を使う方法を教えてください

    お世話になります 秀丸エディタの置換を用いて、 (’.ab12#-cd’)のような文字列や数字、記号のまじった ( )から( )の中身を検索置換して (’’)にしたいと考えています。 具体例 (’.ab12#-cd’) (’.ab#37-c’) (’..ab-82#d%’) (’.12jg+#ppv’) (’.ab12lentext’)から ↓ (’’)に置換したい。 秀丸を使うときはあっても単純な 一文字程度の検索置換しかおこなったことがなく どうにも方法がうかばなかったところ 友人から、正規表現というものを 使えば実現できるようだと聞きました。 友人も残念ながら、プログラミングの経験は あまりなくて正規表現での記述方法は わからないいうことでした。 正規表現を使ってこれを実現する方法を 教えていただけませんでしょうか よろしくお願いいたします

  • 正規表現で一括置換

    現在、数多くの長文データを、テキストエディタの置換機能で一括置換しています。 jeditX(または秀丸エディタ)の正規表現をもちいた複数一括置換について質問させていただきます。 私は正規表現やPC言語の初心者です。どうぞよろしくお願いいたします。 かなり困り果てております。どうぞ、正規表現にくわしいかた、よろしくお願いします。 一二三『一二三にそれぞれ♪マーク』 という文章に対して 一♪二♪三♪ という一括置換をすることには成功しました。 こう書いています。 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪ これでぶじ、以下のように一括置換できました。 一♪二♪三♪ 現実には傍点や圏点をふっているんですが、判りやすく♪マークにしています。 この調子で長い文章も変換できていて満足していたのですが…… しかし代入文字が10個以上になったとたんに、まったく動きません。 ■置換したい文章 一二三四五六七八九十『一二三四五六七八九十にそれぞれ♪マーク』 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪\4♪\5♪\6♪\7♪\8♪\9♪\10♪ こうやると、置換後の文章は以下のようになってしまいます。 一♪二♪三♪四♪五♪六♪七♪八♪九♪一0♪ 10個目以降の数字が、正しく機能してくれません。 \10  という正規表現の書き方は 「一番目の値を参照して、それから数字の0を記入しなさい」 という意味になってしまうようです。 わたしは十番目の値を代入してほしいだけなんです。 \1 や \2 や \3 といった代入文字のように \10 や \11 を機能させる、正しい表記をご教授ください。よろしくお願いいたします。 ちなみに以下のように書いてもダメでした……。 \1\0 グーグルで1日中検索しても判りませんでした。jeditXの複数一括置換でこれをなんとかしたいのです。ご存じの方、どうぞ教えてください。よろしくおねがいします! 秀丸エディタをご利用で、正規表現にくわしい方も、ぜひヒントを出していただければと思います。

  • 秀丸で正規表現による置換

    正規表現でつまずいてしまったので教えてください。 こういうデータがあったとして ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ,,E,77774000,13,77770004479,〇〇〇,0,,,,,l_ ,,E,77774000,21,77770004478,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ,,E,88884000,14,88880004479,〇〇〇,0,,,,,l_ ,,E,88884000,20,88880004478,〇〇〇,0,,,,,l_ 6列目に77770004480があったら、5列目の1を10にする。 6列目に88880004480があったら、5列目の5を10にする。 という事がしたいのですが、7777や8888の部分は必ず数字4桁で固定ですが、 実際には0000-9999まであるため、1万回置換するのは面倒です。 そこで、0004480があったら、ヒットする1や5を10に置き換える事がしたいのですが どのようにしたらいいでしょうか? また、12を2に置き換えることもあるので、5列目は 必ず数字ですが、1桁または2桁となります。 正規表現置換で使用するエディタは、秀丸です。 ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ↓ ,,E,77774000,10,77770004480,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ↓ ,,E,88884000,10,88880004480,〇〇〇,0,,,,,l_ 以上よろしくおねがいいたします

  • VZ タグ付き正規表現の置換

    こちらへの投稿が妥当かどうか自信がありませんが、もし御存知の方がいらっしゃったら、お知恵をお貸しいただければと。 恐らく単純な躓きなのでしょうが、ソートー悩んでいます。。。 ヒューレットパッカードの200LXでvzを使っています。 vz起動時、vwxは常駐させています。 他に使用環境の何を書かねばならないか良く分からないので、もしあったら御指摘ください。 以下のような文字列を置換しようとしてうまく行かず困っています。 ある俳優のプロフィールを自分なりに読みやすくしたいのです。 というか、まちがった一括置換で読みにくくなった(御丁寧に保存してしまった^^)ものを読みやすくしたいのです。 対象文字列(の一例) 1996年 「驚變」1997年 「求戀期」「映画ほにゃらら」 年と「の間はtabが入っています。 」と1997年の間は何も入っていません。 (以下の例文では[tab]とか[改行]とか表記します) これを 1996年[tab]「驚變」[改行] 1997年[tab]「求戀期」「映画ほにゃらら」 としたいのです。 つまり」と四桁の数字の間を改行したいのです。 で、検索文字列にこう打ち込みました。 」\([0-9][0-9][0-9][0-9]\) そして置換文字列にこう打ち込みました。 」\n\1 そうすると置換結果はこうなりました。 1996年 「驚變」n1997年 「求戀期」「映画ほにゃらら」 つまり\nが改行記号と認識されず、文字nそのものだよと受け取ったみたいです。 正規表現そのものが全て受け付けてられていない訳ではなさそうです、\1でちゃんと1997年とでてきますから。 また、以下のようにしても、結果は同じでした。 検索文字列 \(」\)\([0-9][0-9][0-9][0-9]\) 置換文字列 \1\n\2 ちなみに 検索文字列 」 置換文字列 」\n としたら、ちゃんと改行できます。 どなたかお知恵をいただけないでしょうか?

  • 正規表現置換を使った文字の追加

    正規表現置換を使った文字の追加 エクセル2007でcsvファイルを開き、htmlタグが記載されたデータの一部に文字を追加したいと思ってます。 ●検索する値 <p class='test'>*</p> ●置き換え後 <p class='test'>*</p><!--end test--> *は全角文字、英数字、htmlタグなどが入り交じります。 *の部分は変更せず、「<p class='test'>」から始まるhtmlタグの「</p>」の後ろに「<!--end test-->」を追加したいだけなんですが、どのようにすればいいのでしょうか。 エクセルには正規表現検索のアドインをインストールしてるので、正規表現を利用することができる状態です。 よろしくお願いいたします。

  • 複数の文字を一度に置換ってできませんか?

    タイトルのままなのですが、複数ある文字などを一度に置換することって可能なのしょうか?? 例えばですが、</div>は</span>に、</a>は</p>に、<li>は<li class="hoge">といった置換を一気に出来ませんか?? ようは、</div>は</span>で作業一回、</a>は</p>で作業2回目、<li>は<li class="hoge">で作業三回目・・・と置換が多いと少々大変です・・・。 何方か、方法やそれらを可能に出来るソフトのようなものをご存知の方がいらっしゃいましたら、アドバイスいただけたら幸いです。 欲をいいますと1ページに対してではなく、指定ディレクトリ全体に出来れば言うことありません!! 宜しくお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう