2017-03-04 8 views
0

初めてのコーディングはJavaですので、私と同行してください:PIは、HTMLファイルを開き、すべてを削除するようにプログラムをJavaで作成しようとしています。そのhtmlタグが、それだけで、他のすべてではありません。私はファイルがすでに存在していると仮定しており、作成する必要はありません。 今のところ私はより速く始めるために、HTMLコードを含む.txtファイルを使って作業しています。 これまでのところ、ファイルを編集してhtmlタグを削除し、何も置き換えないようにしました。しかし、私が本当に望むのは、開口部と閉じ括弧の内側にあるものをすべて取り除くことです。私は私が必要なものの例が表示されます:私のプログラムが実行された後文字列中の文字列のうち、Javaの他の2文字間にあるすべての文字を置き換えます。

<html> 
<body> 
<p> blah blah blah 
</p> 
</body> 
</html> 

を、txtファイルは、それだけ「何とか何とか何とか」を持っている必要があります。タグを置き換えるために は、私が使用しています:

if(myString.contains("<html>")) 
     { 
      // do stuff 
     } 

をだからここに私の質問です:

if(myString.contains("<") && it is followed by as many characters as the file wants by (">")) 
//then remove everything in between them. 

期すために:私は言うことを可能にするJavaでのエスケープ文字のようなものがあります.txtファイル内のHTMLコードにエラーがないと仮定できます。あなたが私に欲しいと思ったらコードを掲示しますが、それは本当に構造化されていないので、皆さんが私が何をやっているのかを理解するのに役立つとは思いません。それは、私が同時にたくさんのことを試していて、私がコメントとして役に立つかもしれないものを何でも残しているからです。あなたの時間をありがとう!

+0

[JavaでのHTMLタグの削除](http://stackoverflow.com/questions/832620/stripping-html-tags-in-java) – nvisser

答えて

1

は、このような正規表現を使用してみてください。ここで 任意の文字列<で始まるで終わる>といずれかを含むコードがBLAのBLAのままになりますので、これらの二つの角括弧内の任意の文字がないが、空の文字列に置換されます...

str = str.replaceAll("<.*>", ""); 

あなたがテストすることができますregex here

+0

これはまさに私が探していたものですが、これはまた間違いを置き換えます。私の質問は解決しましたが、お時間をいただきありがとうございます。 :) upvoteを! *歓声* – linkin2895

+0

私はもう一度それをチェックし、それもテキストを食べていたことがわかったが、私はあなたのために働いてうれしいです。ハッピーコーディング。更新されたコードの作業。すぐにコメントします。 –

+0

'str = str.replace(" <.*> "、" ");'このコードを使用してタグを置き換えることもできます –

1

String.replaceAllに正規表現を使用できます。中

"<html><p>foo bar</p></html>".replaceAll("</?[A-Za-z]+>", ""); 

結果:

foo bar 

ただし、正規表現でHTMLを解析しようとしないように注意してください。あなたは非常に簡単にHTMLページに含まれるすべてのタグを取り除くことができJSoupを使用

+0

チャームのように機能します!どうもありがとうございました。この表現が正確に何を意味するのかを説明できますか?私は[A-Z a-z]が大文字または小文字のいずれかの文字を意味すると仮定していますが、他の多くのことは分かりません。もう1つ、この表現がタグ間のスペースを置き換えるために追加する必要があるものは何ですか? – linkin2895

+0

これは「正規表現」と呼ばれます。 ( 'java.util.Pattern'クラスがJavaでどのように動作するのかを見てください。)はい、正しくは、 '<' and '>'の間のすべての文字、大文字と小文字が含まれています。また、オプションでcloseタグに '/'を含みます。 '+ 'は「1つ以上」を意味するので、この場合は「1つ以上の大文字または小文字」となります。はい、正規表現にスペースを含めるには、 '\ s'を使用してそれらを表現することができます。 – Jeremy

1

Jsoup.parse(myString).text()

+0

私はこのコマンドに精通していません。おそらく何らかの種類のライブラリが必要です。 – linkin2895

+0

はい、JSoupは外部APIですが、HTMLページからデータを抽出して操作するのに非常に便利です。あなたがそれを使用することに決めた場合、ここでリンクを共有します:https://jsoup.org – higz555

関連する問題