htmlのタグの修正方法について。


次のような連続したタグから一つだけタグを減らしていくにはどうしたらいいでしょうか?

一つのhtml中には、n個の連続した<br />が不規則にいくつもがあります。
その連続した<br />群から、それぞれ<br />を一つずつ減らすにはどうしたらよいでしょう?


TextSSのような置換ソフトまたはスプリクトで出来ますでしょうか?

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2010/02/09 22:50:37
  • 終了:2010/02/10 18:33:47

ベストアンサー

id:kn1967 No.6

kn1967回答回数2915ベストアンサー獲得回数3012010/02/10 01:06:17

ポイント35pt

textSS でも正規表現が使えるようですね。

http://www.vector.co.jp/magazine/softnews/020508/n0205082.html

1→0 は連続していないため対象外だったので、これも加えました。

前後に空白が含まれている可能性も考慮してありますが、

不要であれば2箇所の¥s はいずれも削ってかまいません。

s/<br.*?>\s*\r*\n*\s*(<br.*>)*/$1/ig

※私と非常に似たIDを取得し、私の言葉を利用して、

 主に初心者の方を対象に 情報が足りないとだけ書き込んで、

 放置するというパターンを繰り返している輩がいます。

 質問を終了する際にゼロポイントを割り振るとか、

 不適切な回答者のチェックをいれておけば、次回以降、

 回答投稿を拒否できますので便利です。


※コメント欄を表示する設定にしておくことを勧めます。

 多くの良識ある回答者は不足情報について、

 事前にコメント欄等で確認するようにしますので互いに無駄を省けます。

id:sunfkin22

ご親切に回答していただいて頂いてありがとうございます。

上記の方法、試させて頂きます。

2010/02/10 01:22:28

その他の回答(5件)

id:ana_log No.1

ana_log回答回数114ベストアンサー獲得回数222010/02/09 23:10:27

ポイント15pt

単純に検索文字列「<br /><br />」、置換文字列「<br />」とかでは無理なのですか?

改行が入っていると「<br />¥r<br />」のように改行コードが入ることになりますが、エディタによって異なりますので割愛します


どのような規則性があるのか実際に見て見ないと分かりませんが、正規表現表をうまく使えば置換だけでいけると思います

http://hodade.adam.ne.jp/seiki/page.php?chapter_4

id:sunfkin22

質問をする前は、この方法で減らせるとかと試してみたのですが、5つや6つ連続してる所では、必要以上に減ってしまいます。

希望としては、<br />が1→0、2→1、3→2、4→3、・・・と減るようにしたいのです。

なお、<br />と<br />の間には、改行があります。

2010/02/09 23:38:13
id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012010/02/09 23:20:12

ポイント10pt

下記とりあえず phpで作ってみましたが、

同様に正規表現の使える環境があれば、対応できます。

preg_replace('/<br.*?>\r*\n*(<br.*>)/i', '$1', $text);

正規表現部分は他のソフトでも、ほぼそのまま使えると思いますが、

ソフトによって多少の違いはありますので、

どのようなスクリプト言語を使うスキルがあるのかや、

どのような編集ソフト/エディタを使っているのかといった情報を

提示したほうが、より良い回答を得られるかもしれません。


http://q.hatena.ne.jp/dummy ダミーでスミマセン。

id:phero No.3

kawasaki回答回数55ベストアンサー獲得回数92010/02/09 23:27:42

ポイント25pt

サクラエディタ等の置換機能を使えば可能です。

検索文字列
(<br />)((<br />)+)

置換後文字列
\2

あるいは<br />と<br />の間にスペースなどが入っていても

対応するためには、

検索文字列
(<br />)\s*((<br />\s*)+)

置換後文字列
\2

とすれば大丈夫です。


EmEditorというシェアウェアのテキストエディタでのみ

動作を確認しております。

もしご要望を履き違えておりましたらご返信いただければと思います。


EmEditor

http://jp.emeditor.com/

サクラエディタ

http://sourceforge.net/projects/sakura-editor/

id:sunfkin22

回答ありがとうございます。試してみます。

2010/02/10 00:32:49
id:km1967 No.4

km1967回答回数541ベストアンサー獲得回数402010/02/10 00:20:30

ポイント10pt

まずはお願いなのですが、

お使いのOSや、利用可能なツールまたはスクリプトなど、

何も判らないと回答が難しくなりますので、必須だとご記憶ください。

不適当な回答が集まっても混乱をきたしますから、私への返信欄か、

あるいは、コメント欄を開く設定に変更してコメント欄)に、

書き加えておくことを勧めます。

http://q.hatena.ne.jp/1265723434

id:sunfkin22

はじめてなので、質問の仕方など不慣れでした。

OSは windows XP Professional

使えるツールは、TextSSと秀丸 (初歩的な正規表現まで)

スプリクトは、Javaを少々くらいです。

よろしくお願いします。

2010/02/10 00:32:32
id:tidusmythorbit No.5

tidusmythorbit回答回数98ベストアンサー獲得回数12010/02/10 00:55:06

ポイント15pt

よろしければ参考にして下さい。

http://blogs.yahoo.co.jp/onepiece7110/6018110.html

id:kn1967 No.6

kn1967回答回数2915ベストアンサー獲得回数3012010/02/10 01:06:17ここでベストアンサー

ポイント35pt

textSS でも正規表現が使えるようですね。

http://www.vector.co.jp/magazine/softnews/020508/n0205082.html

1→0 は連続していないため対象外だったので、これも加えました。

前後に空白が含まれている可能性も考慮してありますが、

不要であれば2箇所の¥s はいずれも削ってかまいません。

s/<br.*?>\s*\r*\n*\s*(<br.*>)*/$1/ig

※私と非常に似たIDを取得し、私の言葉を利用して、

 主に初心者の方を対象に 情報が足りないとだけ書き込んで、

 放置するというパターンを繰り返している輩がいます。

 質問を終了する際にゼロポイントを割り振るとか、

 不適切な回答者のチェックをいれておけば、次回以降、

 回答投稿を拒否できますので便利です。


※コメント欄を表示する設定にしておくことを勧めます。

 多くの良識ある回答者は不足情報について、

 事前にコメント欄等で確認するようにしますので互いに無駄を省けます。

id:sunfkin22

ご親切に回答していただいて頂いてありがとうございます。

上記の方法、試させて頂きます。

2010/02/10 01:22:28
  • id:kn1967
    さて、うまく行ってますでしょうか?
    ダメな場合はダメとコメントしてください。

    上手くいった場合は、それぞれの回答内容に応じて点数を割り振り、
    終了処理を行ってくださいね。(私は2回回答してますので、
    最初のほうをゼロにでもしていただけると各自に支払うポイントの計算が、
    楽だと思います。)
  • id:sunfkin22
    エディタによって違うようで、回答3番さんのEmEditorは○、
    サクラエディタは×、6番さんのTextSSは4つが2つになるようでした。

    TextSSは処理できるように工夫してみます。
  • id:phero
    > sunfkin22さん
    私の環境のサクラエディタでは想定通りに動作いたしました。
     サクラエディタ Ver.1.6.2.0 V1310
     正規表現モジュール bregonig.dll Ver.1.42 with Oniguruma 5.9.0
     OS Windows Vista

    環境によって(正規表現モジュールによって?)できない場合があるのかもしれませんね。
    お手数をおかけしてしまい申し訳ありません。
  • id:kn1967
    TextSS 3.21 でゴニョゴニョと検証をやりなおしたところ、
    さくらエディタと似たような挙動になりました。
    複雑な正規表現はperlやphpほどうまくはいかないようです。
    検証不十分で申し訳ない。 > id:sunfkin22 さん

    id:pheroさん >想定通りに動作いたしました。
    こちらではモジュールが古いからか、うまくいきません。
    BREGEXP_1.02_sakura.zip
    ご回答の表現では改行コード等は考慮しておられませんが、
    改行コードを含んででいても動作しました?
  • id:sunfkin22
    みなさん、お礼を書くの遅くなって申し訳ありませんでした。
    次の方法で、こちらが希望していた事が問題なくできました。

    TextSSに正規表現、
    s/<br.*?>\r*\n*(<br.*>)*/$1/g
    でできました。

    次回からは、はてなのポイントの振り方の修得して、
    もっと振れるようしておきたいと思います。
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません