- 締切済み
エクセルでHTMLタグだけを取り除きたい。
オークションの一括出品のCSVファイルのHTMLタグを利用しての商品説明をHTMLタグだけを取り除くフリーソフトなどはあるでしょうか? (サイズや、色などの、商品説明の本文のみを抽出する)。携帯用の商品説明に利用したいと思っています。 ご存知の方がいられましたら、教えてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- koma30007
- ベストアンサー率87% (173/198)
本当に何度も何度もすみません。 『No.2の回答の置換処理を行った場合、~』 些細ですが、出だしから間違いがあったので次のように 訂正して読んでください。 「No.3の回答の置換処理を行った場合、~」 大変失礼しました。m(__;)m
- koma30007
- ベストアンサー率87% (173/198)
何回もすみません。 No.2の回答の置換処理を行った場合、ファイルの内容 によっては必要な'や"などのテキスト区切り文字や, などのセルの区切り文字まで削除されてしまう場合が あります。 (※問題が発生するのは、HTMLタグと商品説明などHTML タグ以外の文字列が同じセルに含まれる場合で、かつ HTMLタグが文字列より先に記述されている場合です。) 処理対象のCSVファイルは2500行程度で、列は一列だけ なのでしょうか? CSVファイルをテキストエディタで開いた場合、どのように 表示されますか? '<table>' '<tr><td> </td><td>商品番号00101</td></tr>' '<tr><td>製品写真</td><td><img src="***.jpg" width="***" height="***"></td></tr>' '<tr><td>仕様</td><td>××:○○○<br>○△:○□□<br>※○△□</td></tr>' '<tr><td>備考</td><td>マニュアル・オプション品完備</td></tr>' '</table>' 上記のように一列しかない場合、回答No.3で紹介した 2回目の正規表現を次のように変更するだけで、HTML タグだけを削除できるはずです。 ※上記は'がテキスト区切り文字ですが、"の場合でも 大丈夫です。 ※1回目~3回目まで順番に行いますが、<title>タグの 行がない場合は、1回目の置換処理は行う必要はあり ません。 2回目(すべてのHTMLタグを削除します。※'や"などの テキスト区切り文字は削除しません。) 置換前 <[^>]*> 置換後 空欄にする ※2列以上ある場合は、上手く削除されない場合もあり ます。データが入っていない一部の不要な'や"、および ,などが残る場合は、3回目の処理まで完了した後で、 次の処理も続けて順番に行うと良いです。 ・追加の処理1(2個連続している'または"を削除します) 置換前 [,:; \t]*['"]{2}[,:; \t]* 置換後 空欄にする ・追加の処理2('または"の間に足りない,などの区切り 文字を追加) 置換前 (['"])(['"]) 置換後 $1,$2 ※セルの区切り文字が,以外の場合は、「$1;$2」など 置換後をCSVファイルに合わせて変更してください。
- koma30007
- ベストアンサー率87% (173/198)
自動でHTMLタグを削除してくれるソフトがあるか どうかは分かりません。 正規表現による置換を行えば、今よりは作業が楽に なると思ってNo.2のソフトをご紹介しました。 2500行程度でしたら、サクラエディタで問題なく置換 可能ですし、ファイルを開いてから「検索」→「置換」 で操作するだけですので、サクラエディタを使って みてください。 ※置換のダイアログで「正規表現」にチェックします。 ※必ずバックアップを取ってから作業してください。 No.2で紹介した正規表現では、場合によっては残して 置きたい'や"、改行タグなども一部削除されてしまう 場合がありますので、次の正規表現を用いてください。 ・1回目(タイトルタグの行を削除します) 置換前 ["' \t,:;]*<title>.*</title>["']?[ \s,:;]* 置換後 空欄にする ・2回目(HTMLタグとそのタグの直前にあるテキスト 区切り文字、セル区切り文字を削除します) 置換前 ["' \t,:;]*<[^>]*> 置換後 空欄にする ・3回目(空行またはテキスト区切り文字またはセルの 区切り文字しかない行を削除します) 置換前 ^['" \t,:;]*\s*$ 置換後 空欄にする 上記の置換を順番に行いますが、ほとんど時間は掛か りません。 <head>タグ内にスタイルシートのタグを記述している 場合は、スタイルシートの記述が残ってしまいます。 この場合は、次の2つも順番にそれぞれ置換前の欄に 入力して、置換してみてください。 (置換後の欄は空欄にします。) [,:;"']*[ \t]*.*({|}|;)["',:;]*\s* [,:;"']*[ \t]*(<!--|-->|})['",:;]*\s* ※ファイルの内容によっては、一部余分な記述が残る かもしれませんが、その場合は手直しして試してみて ください。 正規表現の実装状態はソフトによって異なりますので、 別のソフトを使った場合には、置換結果が異なる場合 があります。 ・正規表現講座 http://www.sixnine.net/regexp/ ※edからPerl互換の正規表現の解説をしています。 ※サクラエディタはPerl互換で動作するようです。 他には、VxEditorもPerl互換の正規表現が使用でき ます。
- koma30007
- ベストアンサー率87% (173/198)
HTMLタグをすべて削除してしまって良いのでしょうか? 正規表現を使用できるツールで置換すると良いです。 ファイルが一つしかない場合は、テキストエディタでも 十分だと思います。 ※念のためにコピーを作成して置いた方が良いです。 ・1回目 置換前 ["' \t,:;]*<title>.*</title>["']?[ \s,:;]* 置換後 空欄にする ・2回目 置換前 ["' \t,:;]*<[^>]*>["']?[ \s,:;]* 置換後 空欄にする ※区切り文字が分からないのですが、このような感じに なります。("、'、空白、タブ、カンマ、コロン、セミコロン以外 の文字を使っている場合は、適当に追加して下さい。) サクラエディタで可能でしたが、その他のソフトでは 若干違う場合もあります。 「サクラエディタ」 http://sakura_editor.at.infoseek.co.jp/ ※HEADタグ内に内部スタイルシートの記述がある場合は、 下で紹介しているツールを使用してください。 上に書いた処理だけで行う場合に、サクラエディタでは 内部スタイルシートの記述が残ってしまいます。 ※外部スタイルシート読み込みの場合は大丈夫です。 「Speeeeed」を使用すると、複数のファイルを一括処理 できます。 http://www.vector.co.jp/soft/win95/util/se142895.html ※置換えリスト編集で1回目の処理の分を上に登録して ください。 ※「追加」ボタンを押して「全てのファイル」を選択すると CSVファイルも追加できます。 ※正規表現を使用するには、「BREGEXP.DLL」が必要です。 http://www.hi-ho.ne.jp/babaq/bregexp.html
- dodemoii
- ベストアンサー率59% (769/1282)
こんにちは 意図と合うかわからないですけど、置換してしまえば良いのでは? 例:http*→空欄に置換 ツールはワイルドカードが使えるソフト 例えばexcelでもできると思います。 では。
お礼
EXCELで置換をしていましたが、タグを全部置換をするには、とても大変で・・。 ご回答ありがとうございました。
お礼
ご回答ありがとうございました。 エクセルで、複数行たとえば2500行くらいの一列のタグと空欄を削除してしまいたいのですが、難しいですね。 紹介していただいた、ソフトを見てみましたが、わかりませんでした。 どれかが、このような削除方法ができるのでしょうか? ご存知でしたら、教えて下さい。